PBPath Journal Watch Articles


Wellcome to the PBPath Journal Watch!

This bi-monthly journal watch features exciting recently published pancreas and biliary pathology articles that will provide up to date medical knowledge in our field. These articles will be showcased in several convenient categories, including surgical pathology, cytopathology, and molecular pathology among others. The articles in each category are in no particular order. See the list of journals we search regularly here. Previous months’ issues may be found in our archive and you may see preparation of upcoming issue here.

We encourage members to actively participate by recommending new articles and providing feedback using the forms provided below.

We hope that you will enjoy the new PBPath Journal Watch!


Feedback

Please send your feedbacks using the forms below:

Google Feedback Form


Back to top


Surgical Pathology


Pancreas


Morphology, Diagnostics, IHC

Morphology, Diagnostics, IHC


- Pancreatic Nerve Sheath Tumors: a Single Institutional Series and Systematic Review of the Literature

Journal of gastrointestinal surgery : official journal of the Society for Surgery of the Alimentary Tract 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30941687

INTRODUCTION: Improvement in imaging has resulted in frequent diagnosis of benign and premalignant pancreatic tumors. Pancreatic nerve sheath (PNS) tumors are one of the rarest pancreatic tumors. Literature on PNS is limited and their biology is poorly understood. Here, we report the largest series of PNS tumors to date and review the literature to evaluate the current data available on PNS tumors. METHODS: An institutional database was used to identify patients who underwent resection for PNS tumors. Clinicopathological characteristics and outcomes of these patients were reported. Furthermore, a review of literature was performed. RESULTS: From January 1994 through December 2016, seven patients underwent resection for PNS tumors. The median age was 57.7 years (IQR, 44.9-61.9) and the sex was approximately equally distributed (male = 4; 57.1%). Three (42.9%) patients were diagnosed incidentally and six (85.7%) were misdiagnosed as having other pancreatic tumors. The median tumor size was 2.1 (IQR 1.8-3.0) cm and six (85.7%) had no nodal disease. At a median follow-up of 15.5 (IQR 13.7-49.3) months, six patients were alive without evidence of disease and one patient was lost to follow-up. The literature review identified 49 studies reporting 54 patients with PNS tumors. Forty-six were misdiagnosed as having other pancreatic tumors. The median tumor size was 3.6 (range 1-20) cm, nodal disease was present in six patients (22.2%), and no patient had distant metastatic disease. At the time of last follow-up, all patients were free of disease. CONCLUSION: This is the largest single institution series on PNS tumors reported to date. These tumors are rare and are often misdiagnosed, given their radiological characteristics. PNS tumors have a benign course of disease and surgical resection results in favorable long-term outcomes.


- Primary Extranodal Rosai-Dorfman Disease (Sinus Histiocytosis With Massive Lymphadenopathy) in the Pancreatic Tail: A Case Report With Literature Review

Pancreas 2019 04;48(4):e31-e33

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30973472


- Challenges in Diagnosis and Management of Pancreatic Inflammatory Myofibroblastic Tumors in Children

Pancreas 2019 04;48(4):e27-e29

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30973469


Back to top


Staging

Pancreas TNM staging, Margins, Survival


- Tumor location as an indicator of survival in T1 resectable pancreatic ductal adenocarcinoma: a propensity score-matched analysis

BMC gastroenterology 2019 Apr;19(1):59

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31014264

BACKGROUND: The latest 8th edition of the AJCC staging system emphasizes the importance of tumor size however, the clinical significance of the combination of tumor location with tumor size remains unknown. METHODS: We conducted this study to investigate the prognostic role of tumor location in T1 resectable pancreatic ductal adenocarcinoma (PDAC). Resectable PDAC patients from Surveillance, Epidemiology, and End Results (SEER) database (2004-2014) were selected for the propensity score matching analysis. We used matched cohort to analyze the relationship between clinicopathologic features and survival of patients. RESULT: Eight thousand, four hundred nine patients were included in the propensity score matching analysis and 4571 patients were selected for final analysis. In T1 patients, the patients with pancreatic head tumor had worse prognosis compared to the patients with body/tail tumors. Multivariate analysis result showed that pancreatic body/tail location was an independent indicator for better chances of survival in T1 PDAC patients (hazard ratio, 0.69; 95%CI, 0.52-0.93; P = 0.01). The modified staging system was more efficient than the AJCC 8th staging system. CONCLUSION: Modified staging system exhibited a good assessment of the survival rate. The tumor location is a good prognostic indicator for T1 resectable PDAC patients. Modification of T1 subgroup according to tumor location exhibited favorable survival prediction effects.


Back to top


Preneoplastic and Preinvasive Lesions

Preneoplastic and Preinvasive Lesions, PanIN, IPMN, MCN, ICPN


- A Consensus Study of the Grading and Typing of Intraductal Papillary Mucinous Neoplasms of the Pancreas

Pancreas 2019 04;48(4):480-487

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30946243

OBJECTIVE: The grading and typing of intraductal papillary mucinous neoplasms (IPMNs) of the pancreas are challenging for pathologists. We aimed to clarify the points of consistency and disagreement in assessing the grades and types of IPMNs. METHODS: Digital slide images of 20 IPMNs were independently assessed by 10 Japanese pathologists, who then held a consensus meeting to discuss the points of disagreement and develop a consensus and recommendations. RESULTS: The average agreement rates for grade and type were 83.5% (range, 100%-40%) and 82.5% (range, 100%-50%) and the Fleiss’ κ values were 0.567 and 0.636, respectively. CONCLUSIONS: The disagreement points and recommendations were as follows: destructed ductal walls with desquamated neoplastic epithelia or mucin lakes partially lined with neoplastic cells could be invasion; intraductal stromal invasion could be dismissed unless vascular or lymphatic invasion existed; elastica staining may help visualize ducts in colloidal nodules; high-grade can be distinguished from low/intermediate grade by marked nuclear disarrangements and complex architecture in the intestinal papillae; oncocytic papillae are characterized by eosinophilic cells with round disoriented nuclei; high-grade gastric papillae can be distinguished from pancreatobiliary papillae by relatively low but complex architecture; and the most dysplastic papillae should be used to assess type in mixed papillae types.


- Clinical assessment of the GNAS mutation status in patients with intraductal papillary mucinous neoplasm of the pancreas

Surgery today 2019 Mar;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30879148

Intraductal papillary mucinous neoplasm (IPMN) of the pancreas is characterized by cystic dilation of the pancreatic duct, caused by mucin hypersecretion, with slow progression via the adenoma-carcinoma sequence mechanism. Mutation of GNAS at codon 201 is found exclusively in IPMNs, occurring at a rate of 41-75%. Recent advances in molecular biological techniques have demonstrated that GNAS mutation might play a role in the transformation of IPMNs after the appearance of neoplastic cells, rather than in the tumorigenesis of IPMNs. GNAS mutation is observed frequently in the intestinal subtype of IPMNs with MUC2 expression, and less frequently in IPMNs with concomitant pancreatic ductal adenocarcinoma (PDAC). Research has focused on assessing GNAS mutation status in clinical practice using various samples. In this review, we discuss the clinical application of GNAS mutation assessment to differentiate invasive IPMNs from concomitant PDAC, examine the clonality of recurrent IPMNs in the remnant pancreas using resected specimens, and differentiate pancreatic cystic lesions using cystic fluid collected by endoscopic ultrasound-guided fine needle aspiration (EUS-FNA), duodenal fluid, and serum liquid biopsy samples.


- Intraductal Oncocytic Papillary Neoplasms: Clinical-Pathologic Characterization of 24 Cases, With An Emphasis on Associated Invasive Carcinomas

The American journal of surgical pathology 2019 May;43(5):656-661

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30986801

BACKGROUND: Intraductal oncocytic papillary neoplasm (IOPN) of the pancreas is a rare tumor. Recent molecular data indicate that it is distinct from other intraductal neoplasms; however, its clinicopathologic characteristics, especially the frequency/significance of an invasive carcinoma component, and biologic behavior remain to be fully defined. DESIGN: Clinicopathologic characteristics and survival of 24 IOPNs were analyzed. By definition, all tumors exhibited intraductal growth and oncocytic morphology. RESULTS: The female:male ratio was 1.7, and mean age was 59. In 44% of the patients, the IOPN was discovered incidentally; however, the working diagnosis was “ductal adenocarcinoma” in 42%. Fourteen IOPNs occurred in the head of the pancreas. The median tumor size was 4.5 cm. The tumors often grew along adjacent benign ducts, mimicking invasion, but only 29% exhibited unequivocal invasive carcinoma, mostly in the form of microscopic foci (pT1a=4, pT1b=1, pT2=2), and only 6% had lymph node metastasis. Invasive carcinoma was predominantly composed of small tubular units lined by oncocytic cells, or individual oncocytic cells infiltrating the periductal stroma. Follow-up information was available for 18 patients (median=6.8 y). No patients died from the disease, and the overall 10-year survival was 94%. Patients with invasive carcinoma trended toward a lower 5-year recurrence-free survival than those with noninvasive IOPNs (66% vs. 93%, P=0.066), but overall survival was not impacted by the presence of invasion (P=0.38). CONCLUSIONS: IOPN is a distinct tumor type in the pancreas. Despite its morphologic complexity and often extensive pagetoid spread to adjacent ducts, conventional invasive carcinoma is seen in only 29% and usually as microscopic foci. Thus, it is not surprising that IOPN exhibits indolent behavior even when invasion is present.


- Cyclooxygenase-2 and Cytosolic Phospholipase A2 Are Overexpressed in Mucinous Pancreatic Cysts

Clinical and translational gastroenterology 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31009406

OBJECTIVES: Expression of prostaglandin biosynthetic pathway enzymes in mucinous pancreatic cysts is unknown. Cyclooxygenase-2 (COX-2) inhibition is a potential cancer chemoprevention strategy for these lesions. We evaluated the expression of COX-2, cytosolic phospholipase A2 (cPLA2), and protein kinase B (AKT) in the epithelium of pancreatic cysts and correlated enzyme expression with aspirin (ASA) use and cyst fluid prostaglandin E2 (PGE2) concentration. METHODS: Pathology of 80 resected pancreatic cysts was reviewed. Expression of COX-2, cPLA2, and AKT was quantified by tissue immunohistochemistry immunoreactivity scores (IRSs). IRS values were compared between cyst types and (in 30 cases) with matched cyst fluid PGE2 concentrations. RESULTS: The mean IRS was higher in the epithelium of mucinous vs nonmucinous cysts for COX-2 (6.1 ± 4.7 vs 3.2 ± 2.8, P = 0.01) and cPLA2 (6.9 ± 3.0 vs 2.9 ± 2.9, P < 0.001). Cyst epithelial COX-2 expression was higher in mucinous cysts with low-grade dysplasia vs those with high-grade dysplasia or invasive carcinoma (IRS 8.0 ± 3.9 vs 1.5 ± 2.9, P < 0.001), whereas the opposite was found for cPLA2 (6.2 ± 3.0 vs 8.6 ± 2.3, P = 0.005). Cyst fluid PGE2 concentrations did not correlate with either the IRS or a history of low- to moderate-dose ASA use. CONCLUSIONS: COX-2 and cPLA2 are overexpressed in the epithelium of mucinous pancreatic cysts. COX-2 and/or cPLA2 inhibition might prevent the emergence or progression of mucinous pancreatic cysts, but higher doses of ASA or nonsteroidal anti-inflammatory drugs may be necessary to substantially inhibit cyst epithelial COX-2 activity.This is an open-access article distributed under the terms of the Creative Commons Attribution-Non Commercial-No Derivatives License 4.0 (CCBY-NC-ND), where it is permissible to download and share the work provided it is properly cited. The work cannot be changed in any way or used commercially without permission from the journal.


Back to top


Microenvironment

Tumor Stroma Interactions, Microenvironment, Inflammatory Response



Back to top


SPN

Solid Pseudopapillary Neoplasm


- Solid Pseudopapillary Neoplasms of the Pancreas: A Large American Cohort

Pancreas 2019 04;48(4):e21-e22

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30973464


Back to top


Analogue Tumors & Lesions


Back to top


Pancreatitis & Other Diseases



Back to top


Bile Ducts


Morphology, Diagnostics, IHC

Morphology, Diagnostics, IHC


- Impact of tumour budding grade in 310 patients who underwent surgical resection for extrahepatic cholangiocarcinoma

Histopathology 2019 May;74(6):861-872

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30667537

AIMS: Tumour budding is a risk factor for poor prognosis in various cancers. Tumour buds may present an epithelial-mesenchymal transition (EMT) morphological phenotype. This study aimed to elucidate the prognostic impact of tumour budding grade and its association with clinicopathological and EMT-related features in perihilar cholangiocarcinoma (PHCC) or distal cholangiocarcinoma (DCC). METHODS AND RESULTS: Subjects included 195 PHCC and 115 DCC patients. The numbers of tumour buds in different patients were stratified for postoperative survival using the recursive partitioning technique. Consequently, the numbers of tumour buds in PHCC patients were classified into three grades; namely, low (0-4 buds); intermediate (5-11 buds); and high (≥12 buds); those of DCC patients were classified into two grades; namely, low (0-4 buds) and high (≥5 buds). In both PHCC and DCC patients, high tumour budding grade was associated with poor histological differentiation, higher pT factor, presence of lymphatic, venous, perineural invasion and regional lymph node metastasis. In PHCC patients, residual invasive tumour in the resected margin was also associated with high tumour budding grade. For both PHCC and DCC patients, high tumour budding grade was an independent adverse prognostic factor in multivariate analysis (P < 0001 and P = 0.046, respectively). Immunohistochemical examination revealed that the number of tumour buds increased in patients with tumours showing a mesenchymal profile (negative for E-cadherin and positive for vimentin). CONCLUSIONS: Higher tumour budding grade is associated with invasive clinicopathological features, adverse postoperative prognosis and EMT status in extrahepatic cholangiocarcinoma.


- Intrahepatic Cholangiocarcinomas Have Histologically and Immunophenotypically Distinct Small and Large Duct Patterns

The American journal of surgical pathology 2018 Oct;42(10):1334-1345

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30001234

Intrahepatic cholangiocarcinomas are histologically heterogenous. Using a cohort of 184 clinically defined, resected intrahepatic cholangiocarcinomas, we retrospectively classified the histology into 4 subtypes: large duct (LD), small duct (SD) (predominantly tubular [SD1] or predominantly anastomosing/cholangiolar, [SD2]), or indeterminate. Then, we tested the 4 subtypes for associations with risk factors, patient outcomes, histology, and immunophenotypic characteristics. SD was the most common (84%; 24% SD1 and 60% SD2) with lower proportions of LD (8%), and indeterminate (8%). Primary sclerosing cholangitis was rare (2%), but correlated with LD (P=0.005). Chronic hepatitis, frequent alcohol use, smoking, and steatosis had no histologic association. LD was associated with mucin production (P<0.001), perineural invasion (P=0.002), CA19-9 staining (P<0.001), CK7, CK19, CD56 immunophenotype (P=0.005), and negative albumin RNA in situ hybridization (P<0.001). SD was histologically nodular (P=0.019), sclerotic (P<0.001), hepatoid (P=0.042), and infiltrative at the interface with hepatocytes (P<0.001). Albumin was positive in 71% of SD and 18% of LD (P=0.0021). Most albumin positive tumors (85%) lacked extracellular mucin (P<0.001). S100P expression did not associate with subtype (P>0.05). There was no difference in disease-specific or recurrence-free survival among the subtypes. Periductal infiltration and American Joint Committee on Cancer eighth edition pT stage predicted survival by multivariable analysis accounting for gross configuration, pT stage, and histologic type. pT2 had worse outcome relative to other pT stages. Significant differences in histology and albumin expression distinguish LD from SD, but there is insufficient evidence to support further subclassification of SD.


Back to top


Staging

Bile Ducts TNM staging, Margins, Survival


- The Evaluation of the Eighth Edition of the AJCC/UICC Staging System for Intrahepatic Cholangiocarcinoma: a Proposal of a Modified New Staging System

Journal of gastrointestinal surgery : official journal of the Society for Surgery of the Alimentary Tract 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31012045

BACKGROUND: The objective was to clarify the prognostic impact of the 8th edition of American Joint Committee on Cancer (AJCC)/International Union Against Cancer (UICC) of intrahepatic cholangiocarcinoma (ICC). METHODS: A total of 103 ICC patients who underwent hepatectomy between 2002 and 2016 were enrolled. The survival impact of AJCC/UICC 8th edition was examined. RESULTS: The 5-year disease-specific survival (DSS) rate was 75.9% in T1a (n = 23), 88.9% in T1b (n = 10), 14.9% in T2 (n = 24), 52.5% in T3 (n = 11), and 15.2% in T4 (n = 35). The DSS was comparable among T2, T3, and T4 (T2 vs. T3; p = 0.345, T3 vs. T4; 0.295). A multivariate analysis identified multiple tumors (hazard ratio [HR] 2.821), periductal infiltrating (HR 2.439), perforation of the visceral peritoneum (HR 1.850), and vascular invasion (HR 1.872) as independent prognostic factors that were associated with the DSS. The optimum tumor size with the greatest difference in the DSS was 2 cm (p = 0.014). The new T classification was developed as follows: T1, size ≤ 2 cm without other factors; T2, size > 2 cm without other factors; T3, vascular invasion or perforation of the visceral peritoneum; and T4, multiple tumors or periductal infiltrating. The 5-year DSS was 100% in T1 (n = 7), 76.6% in T2 (n = 28), 45.1% in T3 (n = 28), and 3.4% in T4 (n = 40). There were differences in the DSS between T2 and T3 (p = 0.035) and between T3 and T4 (p = 0.003). CONCLUSIONS: T2, T3, and T4 of AJCC/UICC overlapped with regard to the DSS. The new staging can classify ICC patients with sufficient prognostic differences.


- Validation Study of Tumor Invasive Thickness for Postoperative Prognosis in 110 Patients Who Underwent Pancreatoduodenectomy for Distal Cholangiocarcinoma at a Single Institution

The American journal of surgical pathology 2019 May;43(5):717-723

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30986803

The pT classification of the 8th American Joint Committee on Cancer (AJCC) for distal cholangiocarcinoma (DCC) is classified according to depth of invasion (DOI), which is the distance from the basal lamina to the most deeply advanced tumor cells. The Nagoya group proposed a new T classification for DCC based on invasive tumor thickness (ITT), which is the maximal vertical distance of the invasive cancer component (the ITT grade). In this study, we aimed to validate the ITT grade for the next pT classification of DCC in 110 patients. ITT could be measured in all patients, but DOI could only be measured in 62 (56%) patients. According to ITT grade, patients were classified into grades A to D, as follows: grade A, ITT <1 mm (n=9); grade B, ITT 1 mm or more but <5 mm (n=35); grade C, ITT 5 mm or more but <10 mm (n=40); and grade D, ITT 10 mm or greater (n=26). The median overall survival times in patients with ITT grades A, B, C, and D were 12.8, 5.7, 3.7, and 2.0 years, respectively. ITT grade could discriminate postoperative survivals between grades. On multivariate analysis, ITT grade, regional lymph node metastasis, and distant metastasis were selected as independent prognostic factors. In summary, our results showed that ITT grade was a suitable alternative to DOI for pT classification in the next edition of the AJCC for DCC.


- Should Utilization of Lymphadenectomy Vary According to Morphologic Subtype of Intrahepatic Cholangiocarcinoma?

Annals of surgical oncology 2019 Mar;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30927194

OBJECTIVE: We sought to evaluate the utilization of lymphadenectomy (LND) and the incidence of lymph node metastasis (LNM) among different morphologic types of intrahepatic cholangiocarcinoma (ICC). METHODS: Clinical data of patients undergoing curative-intent resection for ICC between 1990 and 2017 were collected and analyzed. The preoperative nodal status was evaluated by imaging studies, and the morphologic and lymph node (LN) status was collected on final pathology report. RESULTS: Overall, 1032 patients had a mass-forming (MF) or intraductal growth (IG) ICC subtype, whereas 150 patients had a periductal infiltrating (PI) or MF + PI subtype. Among the 924 patients with MF/IG ICC subtype who had nodal assessment on preoperative imaging, 747 (80.8%) were node-negative, whereas 177 (19.2%) patients were suspicious for metastatic nodal disease. On final pathological analysis, 71 of 282 (25.2%) patients who had preoperative node-negative disease ultimately had LNM. In contrast, 79 of 135 (58.5%) patients with preoperative suspicious/metastatic LNs had pathologically confirmed LNM (odds ratio [OR] 4.2, p < 0.001). Among the 129 patients with PI/MF + PI ICC subtype and preoperative nodal information, 72 (55.8%) were node-negative on preoperative imaging. In contrast, 57 (44.2%) patients had suspicious/metastatic LNs. On final pathologic examination, 45.3% (n = 24) of patients believed to be node-negative on preoperative imaging had LNM; 68.0% (n = 34) of patients who had suspicious/positive nodal disease on imaging ultimately had LNM (OR 2.6, p = 0.009). CONCLUSION: Given the low accuracy of preoperative imaging evaluation of nodal status, routine LND should be performed at the time of resection for both MF/IG and PI/MF + PI ICC subtypes.


- Assessment of the Lymph Node Status in Patients Undergoing Liver Resection for Intrahepatic Cholangiocarcinoma: the New Eighth Edition AJCC Staging System

Journal of gastrointestinal surgery : official journal of the Society for Surgery of the Alimentary Tract 2018 01;22(1):52-59

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=28424987

INTRODUCTION: The role of routine lymphadenectomy for intrahepatic cholangiocarcinoma (ICC) is still controversial. The AJCC eighth edition recommends a minimum of six harvested lymph nodes (HLNs) for adequate nodal staging. We sought to define outcome and risk of death among patients who were staged with ≥6 HLNs versus <6 HLNs. MATERIALS AND METHODS: Patients undergoing hepatectomy for ICC between 1990 and 2015 at 1 of the 14 major hepatobiliary centers were identified. RESULTS: Among 1154 patients undergoing hepatectomy for ICC, 515 (44.6%) had lymphadenectomy. On final pathology, 200 (17.3%) patients had metastatic lymph node (MLN), while 315 (27.3%) had negative lymph node (NLN). Among NLN patients, HLN was associated with 5-year OS (p = 0.098). While HLN did not impact 5-year OS among MLN patients (p = 0.71), the number of MLN was associated with 5-year OS (p = 0.02). Among the 317 (27.5%) patients staged according the AJCC eighth edition staging system, N1 patients had a 3-fold increased risk of death compared with N0 patients (hazard ratio 3.03; p < 0.001). CONCLUSION: Only one fourth of patients undergoing hepatectomy for ICC had adequate nodal staging according to the AJCC eighth edition. While the six HLN cutoff value impacted prognosis of N0 patients, the number of MLN rather than HLN was associated with long-term survival of N1 patients.


  • A novel online prognostic tool to predict long‐term survival after liver resection for intrahepatic cholangiocarcinoma: The “metro‐ticket” paradigm

https://onlinelibrary.wiley.com/doi/abs/10.1002/jso.25480


Back to top


Gallbladder


Morphology, Diagnostics, IHC

Morphology, Diagnostics, IHC


- ****

  • ;():*

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=


- [Pilot study of the relationship between clinical classification of gallbladder cancer and prognosis: a retrospective multicenter clinical study]

Zhonghua wai ke za zhi [Chinese journal of surgery] 2019 Apr;57(4):258-264

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30929370

Objectives: To propose a novel clinical classification system of gallbladder cancer, and to investigate the differences of clinicopathological characteristics and prognosis based on patients who underwent radical resection with different types of gallbladder cancer. Methods: The clinical data of 1 059 patients with gallbladder cancer underwent radical resection in 12 institutions in China from January 2013 to December 2017 were retrospectively collected and analyzed.There were 389 males and 670 females, aged (62.0±10.5)years(range:22-88 years).According to the location of tumor and the mode of invasion,the tumors were divided into peritoneal type, hepatic type, hepatic hilum type and mixed type, the surgical procedures were divided into regional radical resection and extended radical resection.The correlation between different types and T stage, N stage, vascular invasion, neural invasion, median survival time and surgical procedures were analyzed.Rates were compared by χ(2) test, survival analysis was carried by Kaplan-Meier and Log-rank test. Results: Regional radical resection was performed in 940 cases,including 81 cases in T1 stage,859 cases in T2-T4 stage,119 cases underwent extended radical resection;R0 resection was achieved in 990 cases(93.5%).The overall median survival time was 28 months.There were 81 patients in Tis-T1 stage and 978 patients in T2-T4 stage.The classification of gallbladder cancer in patients with T2-T4 stage: 345 cases(35.3%)of peritoneal type, 331 cases(33.8%) of hepatic type, 122 cases(12.5%) of hepatic hilum type and 180 cases(18.4%) of mixed type.T stage(χ(2)=288.60,P<0.01),N stage(χ(2)=68.10, P<0.01), vascular invasion(χ(2)=128.70, P<0.01)and neural invasion(χ(2)=54.30, P<0.01)were significantly correlated with the classification.The median survival time of peritoneal type,hepatic type,hepatic hilum type and mixed type was 48 months,21 months,16 months and 11 months,respectively(χ(2)=80.60,P<0.01).There was no significant difference in median survival time between regional radical resection and extended radical resection in the peritoneal type,hepatic type,hepatic hilum type and mixed type(all P>0.05). Conclusion: With application of new clinical classification, different types of gallbladder cancer are proved to be correlated with TNM stage, malignant biological behavior and prognosis, which will facilitate us in preoperative evaluation,surgical planning and prognosis evaluation.


  • IL‐33 overexpression in gallbladder cancers associated with pancreatobiliary maljunction

https://onlinelibrary.wiley.com/doi/abs/10.1111/his.13863


Back to top


Staging

Gallbladder TNM staging, Margins, Survival


- Staging gallbladder cancer with lymphadenectomy: the practical application of new AHPBA and AJCC guidelines

HPB : the official journal of the International Hepato Pancreato Biliary Association 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31010632

BACKGROUND: Current guidelines recommend harvesting a total lymph node count (TLNC) ≥6 from portal lymphadenectomy in ≥pT1b gallbladder cancers (GBC) for accurate staging and prognostication. This study aimed to determine nodal yields from portal lymphadenectomy and identify measures to maximize TLNC. METHODS: We retrospectively reviewed all ≥pT1b GBC which underwent resection with curative intent including portal lymphadenectomy at our specialized HPB center from 2007 to 2017. We compared outcomes of TLNC < 6 and TLNC ≥ 6 cohorts and determined factors predictive of TLNC. RESULTS: Of 92 patients, 20% had a TLNC ≥ 6 (IQR 7-11) and 9% had no nodes found on pathology. Malignant lymphadenopathy was twice as common in TLNC ≥ 6 as TLNC < 6 (p = 0.003) most frequently from portal, cystic and pericholedochal stations. On logistic regression analysis, concomitant liver resection was an independent predictor of higher TLNC [4b/5 wedge resection (OR 0.166, CI 0.057-0.486, p = 0.001) extended hepatectomy (OR 0.065, CI 0.012-0.340, p = 0.001)]; biliary resection and en bloc adjacent organ resection were not. CONCLUSION: At our center, prior to current guidelines, a TLNC≥6 was not met in 80% undergoing portal lymphadenectomy for ≥ pT1b GBC. To increase nodal yield, future guidelines should consider including additional lymph node stations and incorporation of frozen section analysis.


- The incidence rates and survival of gallbladder cancer in the USA

European journal of cancer prevention : the official journal of the European Cancer Prevention Organisation (ECP) 2019 01;28(1):1-9

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=28683010

Gallbladder cancer is a rare malignancy in most countries. The racial and sociodemographic factors associated with its incidence and survival are poorly defined. We aimed to investigate population-based gallbladder cancer incidence and survival trends on the basis of clinical characteristics and sociodemographic factors in the USA. Gallbladder cancer incidence and survival data from 2001 to 2012 were obtained from 18 registries of the Surveillance, Epidemiology, and End Results database. Incidence rates and Joinpoint trends were calculated by demographic subgroup. Survival trends were assessed using Cox proportional hazard models. A total of 7769 patients were identified. The overall gallbladder cancer incidence rates did not significantly change during the 2001-2012 period. Incidence rates were three times higher in Hispanics and 1.6 times higher in Blacks compared with Whites. Over the time period, incidence rates significantly increased among Blacks and decreased among Hispanics. Male sex [hazard ratio (HR): 1.10, 95% confidence interval (CI): 1.03-1.17], older age (HR: 1.73, 95% CI: 1.53-1.96), and single and divorced statuses (HR: 1.19, 95% CI: 1.09-1.30 and 1.12, 95% CI: 1.01-1.24) were independently associated with shorter overall survival, whereas higher education (HR: 0.89, 95% CI: 0.82-0.97) and higher income (HR: 0.89, 95% CI: 0.82-0.96) were associated with longer survival. Furthermore, overall survival has improved in all races/ethnicities except for Hispanics and Blacks. The overall incidence rates for gallbladder cancer were stable during 2001-2012. Hispanics have the highest incidence rates, but the incidence rates in Blacks are on the rise.


  • Staging gallbladder cancer with lymphadenectomy: the practical application of new AHPBA and AJCC guidelines

https://www.sciencedirect.com/science/article/abs/pii/S1365182X19304988


- Optimal surgical treatment in patients with T1b gallbladder cancer: An international multicenter study

Journal of hepato-biliary-pancreatic sciences 2018 Dec;25(12):533-543

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30562839

BACKGROUND: There is no consensus on the optimal treatment of T1b gallbladder cancer (GBC) due to the lack of evidence and the difficulty of anatomy and pathological standardization. METHODS: A total of 272 patients with T1b GBC who underwent surgical resection at 14 centers with specialized hepatobiliary-pancreatic surgeons and pathologists in Korea, Japan, Chile, and the United States were studied. Clinical outcomes including disease-specific survival (DSS) rates according to the types of surgery were analyzed. RESULTS: After excluding patients, the 237 qualifying patients consisted of 90 men and 147 women. Simple cholecystectomy (SC) was performed in 116 patients (48.9%) and extended cholecystectomy (EC) in 121 patients (51.1%). The overall 5-year DSS was 94.6%, and it was similar between SC and EC patients (93.7% vs. 95.5%, P = 0.496). The 5-year DSS was similar between SC and EC patients in America (82.3% vs. 100.0%, P = 0.249) as well as in Asia (98.6% vs. 95.2%, P = 0.690). The 5-year DSS also did not differ according to lymph node metastasis (P = 0.688) or tumor location (P = 0.474). CONCLUSIONS: SC showed similar clinical outcomes (including recurrence) and survival outcomes as EC; therefore, EC is not needed for the treatment of T1b GBC.


  • Prognostic Impact of Lymph Node Excision in T1 and T2 Gallbladder Cancer: a Population-Based and Propensity Score-Matched SEER Analysis

https://link.springer.com/article/10.1007/s11605-019-04175-3


  • Evolution of surgical management of gallbladder carcinoma and impact on outcome: results from two decades at a single-institution

https://www.sciencedirect.com/science/article/abs/pii/S1365182X19304964


Back to top


Ampulla of Vater


Morphology, Diagnostics, IHC

Morphology, Diagnostics, IHC


  • Role of Immunohistochemistry in the Subtyping of Periampullary Adenocarcinoma

https://journals.sagepub.com/doi/abs/10.1177/1066896919837606


- Distinct immunological properties of the two histological subtypes of adenocarcinoma of the ampulla of Vater

Cancer immunology, immunotherapy : CII 2019 Mar;68(3):443-454

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30604042

Adenocarcinoma of the ampulla of Vater (AOV) is classified into intestinal type (IT) and pancreatobiliary type (PB); however, the immunological properties of these subtypes remain to be characterized. Here, we evaluated the clinical implications of PD-L1 expression and CD8+ T lymphocyte density in adenocarcinomas of the AOV and their potential association with Yes-associated protein (YAP). We analyzed 123 adenocarcinoma-of-the-AOV patients who underwent surgical resection, and tumors were classified into IT or PB type. Tumor or inflammatory cell PD-L1 expression, CD8+ T lymphocyte density in the cancer cell nest (intratumoral) or in the adjacent stroma, and YAP localization and intensity were analyzed using immunohistochemical staining. PB-type tumors showed higher tumoral PD-L1 expression than IT-type tumors, and tumoral PD-L1 expression was associated with a shorter disease-free survival (DFS) [hazard ratio (HR), 1.77; p = 0.045] and overall survival (OS) (HR 1.99; p = 0.030). Intratumoral CD8+ T lymphocyte density was higher in IT type than in PB type and was associated with a favorable DFS (HR 0.47; p = 0.022). The nuclear staining pattern of YAP in tumor cells, compared to non-nuclear staining patterns, was more frequently associated with PB type and increased tumoral PD-L1 expression. Nuclear YAP staining was a significant prognostic factor for OS (HR 2.21; p = 0.022). These results show that the two subtypes of adenocarcinoma of the AOV exhibit significant differences in tumoral PD-L1 expression and intratumoral CD8+ T lymphocyte density, which might contribute to their distinct clinical features.


- Role of Immunohistochemistry in the Subtyping of Periampullary Adenocarcinoma

International journal of surgical pathology 2019 Apr;():1066896919837606

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30942099

CONTEXT: Subtyping of periampullary adenocarcinoma into intestinal and pancreatobiliary subtypes has emerged as an important prognostic factor with potential therapeutic implications. This distinction on morphology alone is often difficult with significant interobserver variability. OBJECTIVE: To analyze the usefulness of a panel of immunohistochemistry (IHC) markers as an aid to morphologic subtyping of periampullary adenocarcinoma. DESIGN: A total of 172 periampullary adenocarcinomas were classified morphologically by 3 study pathologists. Interobserver agreement was assessed in each case. Cases were then typed using a predetermined IHC panel (comprising CK7, CK20, MUC1, and CDX2). RESULTS: Morphologically, 66 (38.4%) cases were intestinal, 56 (32.6%) pancreatobiliary, 25 (14.5%) mixed, 16 (9.3%) poorly differentiated, 6 (3.5%) mucinous, and 3 (1.7%) signet ring cell adenocarcinoma. Concordant diagnosis was reached in 138 cases (80.2%) with moderate overall interobserver agreement (κ = 0.47). Concordance was higher in morphologically distinct mucinous (100%; κ = 0.94) and signet ring cell subtypes (100%; κ = 1.0) than in intestinal (84.6%; κ = 0.47) and pancreatobiliary (82.1%; κ = 0.43) types. Concordance was poor for mixed (64%; κ = 0.27) and poorly differentiated (68.8%; κ = 0.76) tumors. IHC subtyped 79 cases (46%) as pancreatobiliary, 73 (42.4%) as intestinal, and was inconclusive in 20 cases (11.6%). IHC helped classify 21 out of 25 (84%) mixed and 10 out of 16 poorly differentiated (62.5%) adenocarcinomas. Combination of histology and IHC classified 161 of the total 172 cases (93.6%). CONCLUSION: Use of an IHC panel aids in subtyping of periampullary adenocarcinomas, especially in tumors with mixed morphology and poor differentiation.


- Can we classify ampullary tumours better? Clinical, pathological and molecular features. Results of an AGEO study

British journal of cancer 2019 Apr;120(7):697-702

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30837681

BACKGROUND: Ampullary adenocarcinoma (AA) originates from either intestinal (INT) or pancreaticobiliary (PB) epithelium. Different prognostic factors of recurrence have been identified in previous studies. METHODS: In 91 AA patients of the AGEO retrospective multicentre cohort, we evaluated the centrally reviewed morphological classification, panel markers of Ang et al. including CK7, CK20, MUC1, MUC2 and CDX2, the 50-gene panel mutational analysis, and the clinicopathological AGEO prognostic score. RESULTS: Forty-three (47%) of the 91 tumours were Ang-INT, 29 (32%) were Ang-PB, 18 (20%) were ambiguous (Ang-AMB) and one could not be classified. Among these 90 tumours, 68.7% of INT tumours were Ang-INT and 78.2% of PB tumours were Ang-PB. MUC5AC expression was detected in 32.5% of the 86 evaluable cases. Among 71 tumours, KRAS, TP53, APC and PIK3CA were the most frequently mutated genes. The KRAS mutation was significantly more frequent in the PB subtype. In multivariate analysis, only AGEO prognostic score and tumour subtype were associated with relapse-free survival. Only AGEO prognostic score was associated with overall survival. CONCLUSIONS: Mutational analysis and MUC5AC expression provide no additional value in the prognostic evaluation of AA patients. Ang et al. classification and the AGEO prognostic score were confirmed as a strong prognosticator for disease recurrence.


Back to top


Staging

Ampulla of Vater TNM staging, Margins, Survival


  • The Prognostic Relevance of the New 8th Edition of the Union for International Cancer Control Classification of TNM Staging for Ampulla of Vater Carcinoma

https://www.semanticscholar.org/paper/The-Prognostic-Relevance-of-the-New-8th-Edition-of-Imamura-Yamamoto/5387e44d4072f8c2fd546dc0b9e5e46d501721a5


  • Staging for Ampullary Carcinoma: Is Less Actually More?

https://www.semanticscholar.org/paper/Staging-for-Ampullary-Carcinoma%3A-Is-Less-Actually-Cloyd/46f3e88ff5cfa6f5989be804920dec9bfc872699


Back to top


Neuroendocrine


PanNET

PanNET, Pancreatic Neuroendocrine Tumors and related neuroendocrine neoplasms


- Loss of Menin Expression by Immunohistochemistry in Pancreatic Neuroendocrine Tumors: Comparison Between Primary and Metastatic Tumors

Pancreas 2019 04;48(4):510-513

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30946241

OBJECTIVES: Molecular characterization of sporadic pancreatic neuroendocrine tumors (PanNETs) demonstrates frequent alterations in MEN1. As the role of menin immunohistochemistry as a potential biomarker is being developed, knowledge of whether the pattern of menin expression is the same in primary tumors and distant metastases may help in patient care. Therefore, we compared patterns of menin expression in matched primary tumors and metastases. METHODS: We evaluated loss of menin nuclear expression by immunohistochemistry in 44 matched samples of primary and metastatic PanNETs and concordance in staining pattern between primary and metastatic tumors. RESULTS: Menin nuclear expression was lost in 18 (41%) of 44 primary tumors and 17 (39%) of 44 metastases. Concordant loss of menin expression was observed in 41 cases (93%); discordance was observed in 3 cases (7%; 95% confidence interval, 1.4%-18.7%), including 2 with loss in the primary tumor but not the metastasis. CONCLUSIONS: The concordance of menin staining between primary tumor and metastasis in most cases suggests that menin loss is an early event in PanNET tumorigenesis. The discordant expression observed in a small subset may be a source of menin-directed therapy failure; thus, repeat assessment of metastases may be helpful for treatment selection.


- Predicting Survival of Small Intestine Neuroendocrine Tumors: Experience From a Major Referral Center

Pancreas 2019 04;48(4):514-518

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30946234

OBJECTIVE: Neuroendocrine tumors (NETs) comprise 41.8% of small intestine malignancies. The NET nomogram is a 15-item prognostic tool that includes relevant factors for guiding management decisions. This is the first external validation of this tool among American patients at a tertiary treatment center. METHODS: Patients who underwent surgical intervention from 2005 to 2017 were screened by retrospective chart review. Nomogram scores were calculated following the methods outlined by Modlin et al (Neuroendocrinology. 2010;92:143-157). Validation assessed the association between nomogram scores and survival using Wilcoxon test and Cox regression. RESULTS: Among the 121 patients selected, the NET nomogram significantly predicted survival as a continuous variable (P < 0.01) and when dichotomized using 83 points to distinguish low-risk versus high-risk groups (P < 0.01). However, the nomogram was not universally applicable as even at our specialty center, variables such as chromogranin A and urinary 5-hydroxyindoleacetic acid are not routinely collected, whereas others, like tumor grade, do not reflect the most recently updated classifications. CONCLUSION: The NET nomogram accurately identified patients at low and high risk of death. However, revision to update prognosticators could improve its usefulness for predicting survival of small intestine NETs.


- Clinicopathological characteristics and risk factors for recurrence of well-differentiated pancreatic neuroendocrine tumors after radical surgery: a case-control study

World journal of surgical oncology 2019 Apr;17(1):66

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30975157

BACKGROUND: Well-differentiated pancreatic neuroendocrine tumors (PanNETs) usually have a good prognosis; however, there are patients that experience recurrence after curative resection. AIM: To explore recurrence-related risk factors by analyzing clinicopathological data of PanNETs after radical surgery. METHODS: Clinical and pathological data from 47 patients with well-differentiated PanNETs at China-Japan Friendship Hospital from January 2012 to March 2016 were analyzed retrospectively. Univariate and multivariate analyses of the risk factors of PanNETs for postoperative recurrence were conducted. RESULTS: Among the 47 patients with well-differentiated PanNETs, there were 38 cases with non-functioning tumors, 9 cases with functional tumors (6 insulinomas, 1 gastrinoma, 1 glucagonoma, and 1 VIPomas). There are 17 cases (36.2%) in the pancreatic head, 17 (36.2%) in the body and tail, 9 (19.1%) in the tail, and 4 (8.5%) in the body. The median tumor size was 3.65 (IQR 2-5.5) cm. Fourteen cases (29.8%) were NET G1, and 33 cases (70.2%) were NET G2. In regard to the clinical stage, 9 (19.1%) cases were IA, 14 (29.8%) cases were IB, 7 (14.9%) cases were IIA, 14 (29.8%) cases were IIB, and 3 cases unknown. There were 17 patients who presented with postoperative recurrence. Univariate analysis showed that AJCC TNM staging, Ki67 index, vascular invasion, margin status, and the regional stage of the tumors are related to the recurrence of patients with PanNETs (p < 0.05). The results of multivariate analysis showed that Ki67 index ≥ 10% is an independent risk factor for the postoperative recurrence of PanNETs (p < 0.05). CONCLUSION: The Ki67 index ≥ 10% is an independent risk factor for recurrence in well-differentiated PanNETs after radical surgery, and close surveillance for these patients may be needed.


- Pancreatic islet (of Langerhans) revisited

Histology and histopathology 2019 Apr;():18118

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31020988

One hundred and fifty years ago, Paul Langerhans described what would come to be known as pancreatic ‘islet of Langerhans’. Since then, we have accumulated knowledge about the pancreatic islet, the cells that exist there and the hormones secreted by these cells. The increasing prevalence of obesity, diabetes and Alzheimer’s disease in the population (three conditions that are linked to pancreatic islet function), the islet has been playing a significant role in endocrinological and metabolic studies searching how we can protect the pancreatic islet and its cell content, or how we can regenerate it. This review will be interested in the most recent and relevant aspects of knowledge regarding the pancreatic islet, always mentioning the evolution of knowledge and future perspectives for the treatment of diabetes and Alzheimer’s disease. The most recent research with microRNAs and islet culture and pseudoislet culture (organoids) allows predicting advances in knowledge with new drugs to act on the islet/cells (such as the hormone glucagon-like peptide (GLP) -1) as well as induction of other islet cells like alpha-cells and delta-cells to transform into beta-cells.


  • The Pancreas as a Site of Metastasis or Second Primary in Patients with Small Bowel Neuroendocrine Tumors

https://link.springer.com/article/10.1245/s10434-019-07370-3


Back to top


Microenvironment

Tumor Stroma Interactions, Microenvironment, Inflammatory Response


Back to top


Staging

PanNET TNM staging, Margins, Survival


- Validation of the 8th AJCC Cancer Staging System for Pancreas Neuroendocrine Tumors Using Korean Nationwide Surgery Database

Cancer research and treatment : official journal of Korean Cancer Association 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30999719

Purpose: The 8th edition of the American Joint Committee on Cancer (AJCC) staging system for pancreatic neuroendocrine tumor (PNET) included several significant changes. We aim to evaluate this staging system compared to the 7th edition AJCC staging system and European Neuroendocrine Tumors Society (ENETS) system. Materials and Methods: We used Korean nationwide surgery database (2000-2014). Of 972 patients who had undergone surgery for PNET, excluding patients diagnosed with ENETS/World Health Organization 2010 grade 3 (G3), only 472 patients with accurate stage were included. Results: Poor discrimination in overall survival rate (OSR) was noted between AJCC 8th stage III and IV (p=0.180). The disease-free survival (DFS) curves of 8th AJCC classification were well separated between all stages. Compared with stage I, the hazard ratio of II, III, and IV was 3.808, 13.928, and 30.618, respectively (p=0.007, p < 0.001, and p < 0.001). The curves of OSR and DFS of certain prognostic group in AJCC 7th and ENETS overlapped. In ENETS staging system, no significant difference in DFS between stage IIB versus IIIA (p=0.909) and IIIA versus IIIB (p=0.291). In multivariable analysis, lymphovascular invasion (p=0.002), perineural invasion (p=0.003), and grade (p < 0.001) were identified as independent prognostic factors for DFS. Conclusion: This is the first large-scale validation of the AJCC 8th edition staging system for pancreatic neuroendocrine tumor. The revised 8th system provides better discrimination compared to that of the 7th edition and ENETS TNM system. This supports the clinical use of the system.


- Defining the Role of Lymphadenectomy for Pancreatic Neuroendocrine Tumors: An Eight-Institution Study of 695 Patients from the US Neuroendocrine Tumor Study Group

Annals of surgical oncology 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31004295

BACKGROUND: Preoperative factors that reliably predict lymph node (LN) metastases in pancreatic neuroendocrine tumors (PanNETs) are unclear. The number of LNs needed to accurately stage PanNETs has not been defined. METHODS: Patients who underwent curative-intent resection of non-functional PanNETs at eight institutions from 2000 to 2016 were analyzed. Preoperative factors associated with LN metastases were identified. A procedure-specific target for LN retrieval to accurately stage patients was determined. RESULTS: Of 695 patients who underwent resection, 33% of tumors were proximal (head/uncinate) and 67% were distal (neck/body/tail). Twenty-six percent of patients (n = 158) had LN-positive disease, which was associated with a worse 5-year recurrence-free survival (RFS; 60% vs. 86%; p < 0.001). The increasing number of positive LNs was not associated with worse RFS. Preoperative factors associated with positive LNs included tumor size ≥ 2 cm (odds ratio [OR] 6.6; p < 0.001), proximal location (OR 2.5; p < 0.001), moderate versus well-differentiation (OR 2.1; p = 0.006), and Ki-67 ≥ 3% (OR 3.1; p < 0.001). LN metastases were also present in tumors without these risk factors: < 2 cm (9%), distal location (19%), well-differentiated (23%), and Ki-67 < 3% (16%). Median LN retrieval was 13 for pancreatoduodenectomy (PD), but only 9 for distal pancreatectomy (DP). Given that PD routinely includes a complete regional lymphadenectomy, a minimum number of LNs to accurately stage patients was not identified. However, for DP, removal of less than seven LNs failed to discriminate 5-year RFS between LN-positive and LN-negative patients (less than seven LNs: 72% vs. 83%, p = 0.198; seven or more LNs: 67% vs. 86%; p = 0.002). CONCLUSIONS: Tumor size ≥ 2 cm, proximal location, moderate differentiation, and Ki-67 ≥ 3% are preoperative factors that predict LN positivity in resected non-functional PanNETs. Given the 9-23% incidence of LN metastases in patients without such risk factors, routine regional lymphadenectomy should be considered. PD inherently includes sufficient LN retrieval, while DP should aim to remove seven or more LNs for accurate staging.


Back to top


Cytopathology


Pancreas


- Glycosylation of ascites-derived exosomal CD133: a potential prognostic biomarker in patients with advanced pancreatic cancer

Medical molecular morphology 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30805710

Cancer cells surviving in ascites exhibit cancer stem cell (CSC)-like features. This study analyzed the expression of the CSC marker CD133 in the ascites-derived exosomes obtained from patients with unresectable pancreatic cancer. In addition, inverse correlation of CD133 expression with prognosis was examined. Of the 133 consecutive patients, 19 patients were enrolled in the study. Exosomes derived from the malignant ascites demonstrated higher density and wider variation in size than those from non-malignant ascites. Western blot revealed enhanced expression of CD133 in exosomes obtained from patients with pancreatic cancer compared to those obtained from patients with gastric cancer or liver cirrhosis. A xenograft mouse model with malignant ascites was established by intraperitoneal inoculation of human pancreatic cancer cells in nude mice. Results obtained from the human study were reproduced in the mouse model. Statistically significant equilateral correlation was identified between the band intensity of CD133 in western blot and overall survival of patients. Lectin microarray analyses revealed glycosylation of CD133 by sialic acids as the major glycosylation among diverse others responsible for the glycosylation of exosomal CD133. These findings suggest that highly glycosylated CD133 in ascites-derived exosomes as a potential biomarker for better prognosis of patients with advanced pancreatic cancer.


- Assessment of CD133-positive extracellular membrane vesicles in pancreatic cancer ascites and beyond

Medical molecular morphology 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30953194


- Intraoperative Peritoneal Washing Cytology on Survival in Pancreatic Ductal Adenocarcinoma With Resectable, Locally Advanced, and Metastatic Disease

Pancreas 2019 04;48(4):519-525

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30946232

OBJECTIVES: The prognostic implications of intraoperative peritoneal washing cytology (IPWC) in patients with pancreatic ductal adenocarcinoma (PDAC) remains incompletely understood. METHODS: A meta-analysis was conducted to investigate the impact of IPWC status on the clinicopathologic features and survival outcomes in potentially resectable, locally advanced, and metastatic PDAC. Hazard ratio (HR) and 95% confidence interval (CI) were used as the pooled estimates. RESULTS: A total of 12 studies qualified for inclusion with 3751 PDAC patients. In resectable PDAC, the postoperative 5-year overall survival was significantly better in negative IPWC than in positive IPWC patients, with a pooled HR of 2.47 (95% CI, 1.90-3.21; P < 0.001; I = 69%) in a random-effects model. Likely, combined outcome showed a significantly longer survival benefit in the negative IPWC group (HR, 2.80; 95% CI, 1.94-4.04; P < 0.001) in terms of recurrence-free survival. The presence of positive IPWC did not significantly alter survival outcomes in those PDAC patients with locally advanced or metastatic disease. CONCLUSIONS: This systematic review and meta-analysis demonstrated that a positive IPWC status in patients with clinically resectable PDAC predicts a poor prognosis. Patients with positive IPWC should be regarded as a specific subgroup, with intensive adjuvant chemotherapy that seems to be warranted for further evaluation.


- Addition of analysis of KRAS mutation or immunohistochemistry with MUC1 and carcinoembryonic antigen improves the diagnostic performance of fine needle aspiration cytology for the diagnosis of pancreatic carcinoma

Cytopathology : official journal of the British Society for Clinical Cytology 2019 Mar;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30929285

BACKGROUND: Pancreatic adenocarcinoma (PAC) is a health problem because of high lethality, increasing incidence and the absence of an early diagnosis. Biopsy by fine needle aspiration guided by endoscopic ultrasound has allowed obtaining tissue for cytopathological analysis, but there are several problems with their interpretation. We aimed to compare the diagnostic performance of the cytopathological analysis with the addition of either an immunohistochemical (IHC) panel or the KRAS mutation for the diagnosis of PAC. METHODS: We evaluated 62 pancreatic lesions by fine needle aspiration guided by endoscopic ultrasound, applying an IHC panel with mucin (MUC)-1, MUC4, carcinoembryonic antigen (CEA) and p53. All cases also had a KRAS mutation determination. Three cytopathologists blinded to clinical data and the KRAS status reviewed the cytology independently. We calculated diagnostic performances for the cytology alone, cytology+IHC and cytology+KRAS to show the best method to diagnose PAC. RESULTS: From 62 samples, 50 (80.6%) were PAC and 12 benign lesions. The cytopathological analysis correctly interpreted 26 malignant and 12 non-neoplastic cases (sensitivity 52%, specificity 100% and diagnostic accuracy 61.3%). The KRAS mutation was present in 88% of PAC. The cytology+ KRAS mutation increased the sensitivity by 10% and the diagnostic accuracy by 8%. The sensitivity increased by 2% adding either MUC1 or CEA to the cytology, and the diagnostic accuracy by 10 or 18%, respectively. CONCLUSION: The addition of IHC either with CEA or MUC1 improved the diagnostic performance of the cytology alone to diagnose PAC. The cytology + IHC evaluation was superior to the cytology + KRAS mutation to diagnose PAC.


- Ancillary Techniques in Cytologic Specimens Obtained from Solid Lesions of the Pancreas: A Review

Acta cytologica 2019 Apr;():1-21

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30970350

Advanced methods of molecular characterization have elucidated the genetic, epigenetic, and proteomic alterations associated with the broad spectrum of pancreatic disease, particularly neoplasia. Next-generation sequencing, in particular, has revealed the genomic diversity among pancreatic ductal adenocarcinoma, neuroendocrine and acinar tumors, solid pseudopapillary neoplasm, and other pancreatico-biliary neoplasms. Differentiating these entities from one another by morphologic analysis alone may be challenging, especially when examining the small quantities of diagnostic material inherent to cytologic specimens. In order to enhance the sensitivity and specificity of pancreatic cytomorphology, multiple diagnostic, prognostic, and predictive ancillary tests have been and continue to be developed. Although a great number of such tests have been developed for evaluation of specimens collected from cystic lesions and strictures, ancillary techniques also play a significant role in the evaluation of cytologic specimens obtained from solid lesions of the pancreas. Furthermore, while some tests have been developed to differentiate diagnostic entities from one another, others have been developed to simply identify dysplasia and malignancy. Ancillary studies are particularly important in the subset of cases for which cytomorphologic analysis provides a result that is equivocal or insufficient to guide clinical management. Selection of appropriate ancillary testing modalities requires familiarity with both their methodology and the molecular basis of the pancreatic diseases for which testing is being performed.


Back to top


Bile Ducts


  • Integrating next-generation sequencing to endoscopic retrograde cholangiopancreatography (ERCP)-obtained biliary specimens improves the detection and management of patients with malignant bile duct strictures

https://gut.bmj.com/content/early/2019/04/10/gutjnl-2018-317817.abstract


Back to top


Gallbladder

Back to top


Neuroendocrine


- Neuroendocrine Tumors (NETs) of the Minor Papilla/Ampulla: Analysis of 16 Cases Underlines Homology With Major Ampulla NETs and Differences From Extra-Ampullary Duodenal NETs

The American journal of surgical pathology 2019 Mar;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30913089

Neuroendocrine tumors (NETs) of the minor papilla/ampulla (MIPA) are rare and poorly studied. Only individual case reports and no comprehensive analysis are available from the literature. We collected 16 MIPA NETs and investigated their clinicopathologic and immunohistochemical features, including markers such as somatostatin, pancreatic polypeptide, gastrin, serotonin, MUC1, cytokeratin 7, and somatostatin receptors type 2A and 5. The median age at diagnosis was 57.5 years, and the female-to-male ratio was 2.2:1. The median NET size was 1.45 cm, and most (94%) were low-grade (G1) tumors. Similarly to what was observed in the major ampulla, 3 histotypes were found: (i) ampullary-type somatostatin-producing tumors (ASTs, 10 cases), characterized by somatostatin expression in most tumor cells, focal-to-extensive tubulo-acinar structures, often with psammoma bodies, MUC1 reactivity, and no or rare membranous reactivity for somatostatin receptor type 2A; (ii) gangliocytic paragangliomas (3 cases), characterized by the coexistence of 3 tumor cell types: epithelioid, often reactive for pancreatic polypeptide, ganglion-like cells, and S100 reactive sustentacular/stromal cells; and (iii) ordinary nonfunctioning NETs (3 cases), resembling those more commonly observed in the extra-ampullary duodenum. Comparable histotypes could also be recognized among the 30 MIPA NETs from the literature. No NET-related patient death among MIPA cases was observed during a median follow-up of 38 months; however, MIPA ASTs showed lymph node metastases and invasion of the duodenal muscularis propria or beyond in 44% and 40% of cases, respectively. In conclusion, MIPA NETs closely resemble tumors arising in the major ampulla, with predominance of ASTs.


Back to top


Molecular Pathology


Pancreas


  • The Genetic Basis of Transcriptional and Spatial Heterogeneity of Squamous Features in Pancreatic Ductal Adenocarcinoma

https://www.semanticscholar.org/paper/The-Genetic-Basis-of-Transcriptional-and-Spatial-of-Hayashi-Fan/390e0bb30b9847eb62c71d3f070c1ec33f4e4948


- A Multiscale Map of the Stem Cell State in Pancreatic Adenocarcinoma

Cell 2019 Apr;177(3):572-586.e22

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30955884

Drug resistance and relapse remain key challenges in pancreatic cancer. Here, we have used RNA sequencing (RNA-seq), chromatin immunoprecipitation (ChIP)-seq, and genome-wide CRISPR analysis to map the molecular dependencies of pancreatic cancer stem cells, highly therapy-resistant cells that preferentially drive tumorigenesis and progression. This integrated genomic approach revealed an unexpected utilization of immuno-regulatory signals by pancreatic cancer epithelial cells. In particular, the nuclear hormone receptor retinoic-acid-receptor-related orphan receptor gamma (RORγ), known to drive inflammation and T cell differentiation, was upregulated during pancreatic cancer progression, and its genetic or pharmacologic inhibition led to a striking defect in pancreatic cancer growth and a marked improvement in survival. Further, a large-scale retrospective analysis in patients revealed that RORγ expression may predict pancreatic cancer aggressiveness, as it positively correlated with advanced disease and metastasis. Collectively, these data identify an orthogonal co-option of immuno-regulatory signals by pancreatic cancer stem cells, suggesting that autoimmune drugs should be evaluated as novel treatment strategies for pancreatic cancer patients.


- Syndecan 1 is a critical mediator of macropinocytosis in pancreatic cancer

Nature 2019 Apr;568(7752):410-414

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30918400

Pancreatic ductal adenocarcinoma (PDAC) remains recalcitrant to all forms of cancer treatment and carries a five-year survival rate of only 8%1. Inhibition of oncogenic KRAS (hereafter KRAS), the earliest lesion in disease development that is present in more than 90% of PDACs, and its signalling surrogates has yielded encouraging preclinical results with experimental agents2-4. However, KRAS-independent disease recurrence following genetic extinction of Kras* in mouse models anticipates the need for co-extinction strategies5,6. Multiple oncogenic processes are initiated at the cell surface, where KRAS* physically and functionally interacts to direct signalling that is essential for malignant transformation and tumour maintenance. Insights into the complexity of the functional cell-surface-protein repertoire (surfaceome) have been technologically limited until recently and-in the case of PDAC-the genetic control of the function and composition of the PDAC surfaceome in the context of KRAS* signalling remains largely unknown. Here we develop an unbiased, functional target-discovery platform to query KRAS-dependent changes of the PDAC surfaceome, which reveals syndecan 1 (SDC1, also known as CD138) as a protein that is upregulated at the cell surface by KRAS. Localization of SDC1 at the cell surface-where it regulates macropinocytosis, an essential metabolic pathway that fuels PDAC cell growth-is essential for disease maintenance and progression. Thus, our study forges a mechanistic link between KRAS* signalling and a targetable molecule driving nutrient salvage pathways in PDAC and validates oncogene-driven surfaceome annotation as a strategy to identify cancer-specific vulnerabilities.


  • A Multiscale Map of the Stem Cell State in Pancreatic Adenocarcinoma

https://www.sciencedirect.com/science/article/pii/S0092867419302727


  • Syndecan 1 is a critical mediator of macropinocytosis in pancreatic cancer

https://www.nature.com/articles/s41586-019-1062-1


- Ring1b-dependent epigenetic remodelling is an essential prerequisite for pancreatic carcinogenesis

Gut 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30954952

BACKGROUND AND AIMS: Besides well-defined genetic alterations, the dedifferentiation of mature acinar cells is an important prerequisite for pancreatic carcinogenesis. Acinar-specific genes controlling cell homeostasis are extensively downregulated during cancer development; however, the underlying mechanisms are poorly understood. Now, we devised a novel in vitro strategy to determine genome-wide dynamics in the epigenetic landscape in pancreatic carcinogenesis. DESIGN: With our in vitro carcinogenic sequence, we performed global gene expression analysis and ChIP sequencing for the histone modifications H3K4me3, H3K27me3 and H2AK119ub. Followed by a comprehensive bioinformatic approach, we captured gene clusters with extensive epigenetic and transcriptional remodelling. Relevance of Ring1b-catalysed H2AK119ub in acinar cell reprogramming was studied in an inducible Ring1b knockout mouse model. CRISPR/Cas9-mediated Ring1b ablation as well as drug-induced Ring1b inhibition were functionally characterised in pancreatic cancer cells. RESULTS: The epigenome is vigorously modified during pancreatic carcinogenesis, defining cellular identity. Particularly, regulatory acinar cell transcription factors are epigenetically silenced by the Ring1b-catalysed histone modification H2AK119ub in acinar-to-ductal metaplasia and pancreatic cancer cells. Ring1b knockout mice showed greatly impaired acinar cell dedifferentiation and pancreatic tumour formation due to a retained expression of acinar differentiation genes. Depletion or drug-induced inhibition of Ring1b promoted tumour cell reprogramming towards a less aggressive phenotype. CONCLUSIONS: Our data provide substantial evidence that the epigenetic silencing of acinar cell fate genes is a mandatory event in the development and progression of pancreatic cancer. Targeting the epigenetic repressor Ring1b could offer new therapeutic options.


- Evaluation of the prognostic significances of γ-secretase genes in pancreatic cancer

Oncology letters 2019 May;17(5):4614-4620

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30944650

With the growing requirement for novel prognostic biomarkers for pancreatic cancer, many studies have focused on clinical and/or genomic variables. Although many studies have been performed, carbohydrate antigen 19-9 is the only biomarker in clinical use. Therefore, the present study examined whether γ-secretase genes, including presenilin (PSEN), nicastrin (NCSTN), presenilin enhancer protein 2 (PSENEN), and anterior pharynx-defective 1 (APH1-), could serve as prognostic factors for pancreatic cancer. The cohorts selected included >100 pancreatic cancer patients. Patient data were downloaded from The Cancer Genome Atlas (TCGA) and Gene Expression Omnibus (GSE21501). The prognostic roles of the γ-secretase genes were analyzed by several survival analysis methods. Among the γ-secretase genes, the prognosis tended to be worse in the 2 cohorts with increasing expression of PSEN1, APH1A, and PSENEN, while the remaining genes were the opposite in the 2 cohorts. Notably, although the patient characteristics were quite different, APH1A was statistically significantly associated with prognosis in the 2 cohorts. The hazard ratio of APH1A for overall survival was 1.598 (TCGA) and 2.724 (GSE21501). These results contribute to the study of γ-secretase in pancreatic cancer. We believe that γ-secretase, particularly APH1A, will be a new prognostic biomarker for pancreatic cancer.


- Hear Pancreatic Cancer Stem Cells ROR

Cell 2019 Apr;177(3):516-518

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31002791

In this issue of Cell, Lytle et al. (2019) integrate functional genomic approaches to identify molecular dependencies of pancreatic cancer stem cells that may be exploited therapeutically. The comprehensive analysis reveals an unexpected role for retinoic acid receptor-related orphan receptor gamma (RORγ), a T-cell-associated transcription factor, in defining the stemness and the aggressive behavior of pancreatic cancer.


- MiR-539 functions as a tumor suppressor in pancreatic cancer by targeting TWIST1

Experimental and molecular pathology 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31022384

The dysregulation of microRNA (miRNA) expression has been highlighted in a variety of human malignant conditions with reports implicating a critical role in the process of tumor growth. The role of miR-539 in pancreatic cancer (PC) is yet to be fully elucidated, hence the aim of the current study was to investigate the effect of miR-539 expression in relation to a cohort of 52 PC specimens. The application of a real-time quantitative polymerase chain reaction (qRT-PCR) revealed a significantly down-regulated miR-539 level, which was accompanied by an increased TWIST1 expression in PC when compared with the controls. The in vitro experiment results demonstrated that the endogenic mimic of miR-539 significantly suppressed the growth of the xenograft tumors in PANC-1 cells, when compared to the delivery of the control miRNA and blank control. Meanwhile, the key epithelial-mesenchymal transition (EMT) inducer, TWIST1 was verified as a direct target gene of miR-539 through the application of a luciferase reporter assay. In conclusion, the results of the current study present evidence emphasizing the significance of the interactions between miR-539 and TWIST1 in the development of and progression of PC, highlighting its potential as a therapeutic target in the treatment of PC patients.


- The ERBB receptor inhibitor dacomitinib suppresses proliferation and invasion of pancreatic ductal adenocarcinoma cells

Cellular oncology (Dordrecht) 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31025257

PURPOSE: Pancreatic ductal adenocarcinoma (PDAC), the most common malignancy of the pancreas, is the fourth most common cause of cancer-related death in the USA. Local progression, early tumor dissemination and low efficacy of current treatments are the major reasons for its high mortality rate. The ERBB family is over-expressed in PDAC and plays essential roles in its tumorigenesis; however, single-targeted ERBB inhibitors have shown limited activity in this disease. Here, we examined the anti-tumor activity of dacomitinib, a pan-ERBB receptor inhibitor, on PDAC cells. METHODS: Anti-proliferative effects of dacomitinib were determined using a cell proliferation assay and crystal violet staining. Annexin V/PI staining, radiation therapy and cell migration and invasion assays were carried out to examine the effects of dacomitinib on apoptosis, radio-sensitivity and cell motility, respectively. Quantitative reverse transcription-PCR (qRT-PCR) and Western blot analyses were applied to elucidate the molecular mechanisms underlying the anti-tumor activity of dacomitinib. RESULTS: We found that dacomitinib diminished PDAC cell proliferation via inhibition of FOXM1 and its targets Aurora kinase B and cyclin B1. Moreover, we found that dacomitinib induced apoptosis and potentiated radio-sensitivity via inhibition of the anti-apoptotic proteins survivin and MCL1. Treatment with dacomitinib attenuated cell migration and invasion through inhibition of the epithelial-to-mesenchymal transition (EMT) markers ZEB1, Snail and N-cadherin. In contrast, we found that the anti-tumor activity of single-targeted ERBB agents including cetuximab (anti-EGFR mAb), trastuzumab (anti-HER2 mAb), H3.105.5 (anti-HER3 mAb) and erlotinib (EGFR small molecule inhibitor) were marginal. CONCLUSIONS: Our findings indicate that dacomitinib-mediated blockade of the ERBB receptors yields advantages over single-targeted ERBB inhibition and provide a rationale for further investigation of the therapeutic potential of dacomitinib in the treatment of ERBB-driven PDAC.


  • Hear Pancreatic Cancer Stem Cells ROR

https://www.sciencedirect.com/science/article/pii/S0092867419303885


Back to top


SPN

Solid Pseudopapillary Neoplasm



Back to top


Pancreatitis & Other Diseases

Molecular Studies on Pancreatitis & Other Diseases


- Novel p.K374E variant of CPA1 causes misfolding-induced hereditary pancreatitis with autosomal dominant inheritance

Gut 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31005883


Back to top


Molecular Research on Microenvironment

Tumor Stroma Interactions, Microenvironment, Inflammatory Response, Microbiome


  • Metastasis of pancreatic cancer: An uninflamed liver micromilieu controls cell growth and cancer stem cell properties by oxidative phosphorylation in pancreatic ductal epithelial cells

https://www.sciencedirect.com/science/article/pii/S0304383519301958


- Mobilization of CD8+ T cells via CXCR4 blockade facilitates PD-1 checkpoint therapy in human pancreatic cancer

Clinical cancer research : an official journal of the American Association for Cancer Research 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30940657

PURPOSE: Pancreatic ductal adenocarcinoma (PDA) is rarely cured, and single-agent immune checkpoint inhibition has not demonstrated clinical benefit despite the presence of large numbers of CD8+T cells. We hypothesized that tumor-infiltrating CD8+T cells harbor latent anti-tumor activity that can be reactivated using combination immunotherapy. EXPERIMENTAL DESIGN: Preserved human PDA specimens were analyzed using multiplex immunohistochemistry (IHC) and T cell receptor (TCR) sequencing. Fresh tumor was treated in organotypic slice culture to test the effects of combination PD-1 and CXCR4 blockade. Slices were analyzed using IHC, flow cytometry and live fluorescent microscopy to assess tumor kill, in addition to T cell expansion and mobilization. RESULTS: Multiplex IHC demonstrated fewer CD8+T cells in juxtatumoral stroma containing carcinoma cells than in stroma devoid of them. Using TCR sequencing, we found clonal expansion in each tumor; high frequency clones had multiple DNA rearrangements coding for the same amino acid binding sequence, which suggests response to common tumor antigens. Treatment of fresh human PDA slices with combination PD-1 and CXCR4 blockade led to increased tumor cell death concomitant with lymphocyte expansion. Live microscopy after combination therapy demonstrated CD8+T cell migration into the juxtatumoral compartment and rapid increase in tumor cell apoptosis. CONCLUSION: Endogenous tumor-reactive T cells are present within the human PDA tumor microenvironment and can be reactivated by combined blockade of PD-1 and CXCR4. This provides a new basis for the rational selection of combination immunotherapy for PDA.


- L1CAM induces perineural invasion of pancreas cancer cells by upregulation of metalloproteinase expression

Oncogene 2019 01;38(4):596-608

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30171263

Pancreas cancer cells have a tendency to invade along nerves. Such cancerous nerve invasion (CNI) is associated with poor outcome; however, the exact mechanism that drives cancer cells to disseminate along nerves is unknown. Immunohistochemical analysis of human pancreatic ductal adenocarcinoma (PDAC) specimens showed overexpression of the L1 cell adhesion molecule (L1CAM) in cancer cells and in adjacent Schwann cells (SC) in invaded nerves. By modeling the neural microenvironment, we found that L1CAM secreted from SCs acts as a strong chemoattractant to cancer cells, through activation of MAP kinase signaling. L1CAM also upregulated expression of metalloproteinase-2 (MMP-2) and MMP-9 by PDAC cells, through STAT3 activation. Using a transgenic Pdx-1-Cre/KrasG12D /p53R172H (KPC) mouse model, we show that treatment with anti-L1CAM Ab significantly reduces CNI in vivo. We provide evidence of a paracrine response between SCs and cancer cells in the neural niche, which promotes cancer invasion via L1CAM secretion.


- Targeting LIF-mediated paracrine interaction for pancreatic cancer therapy and monitoring

Nature 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30996350

Pancreatic ductal adenocarcinoma (PDAC) has a dismal prognosis largely owing to inefficient diagnosis and tenacious drug resistance. Activation of pancreatic stellate cells (PSCs) and consequent development of dense stroma are prominent features accounting for this aggressive biology1,2. The reciprocal interplay between PSCs and pancreatic cancer cells (PCCs) not only enhances tumour progression and metastasis but also sustains their own activation, facilitating a vicious cycle to exacerbate tumorigenesis and drug resistance3-7. Furthermore, PSC activation occurs very early during PDAC tumorigenesis8-10, and activated PSCs comprise a substantial fraction of the tumour mass, providing a rich source of readily detectable factors. Therefore, we hypothesized that the communication between PSCs and PCCs could be an exploitable target to develop effective strategies for PDAC therapy and diagnosis. Here, starting with a systematic proteomic investigation of secreted disease mediators and underlying molecular mechanisms, we reveal that leukaemia inhibitory factor (LIF) is a key paracrine factor from activated PSCs acting on cancer cells. Both pharmacologic LIF blockade and genetic Lifr deletion markedly slow tumour progression and augment the efficacy of chemotherapy to prolong survival of PDAC mouse models, mainly by modulating cancer cell differentiation and epithelial-mesenchymal transition status. Moreover, in both mouse models and human PDAC, aberrant production of LIF in the pancreas is restricted to pathological conditions and correlates with PDAC pathogenesis, and changes in the levels of circulating LIF correlate well with tumour response to therapy. Collectively, these findings reveal a function of LIF in PDAC tumorigenesis, and suggest its translational potential as an attractive therapeutic target and circulating marker. Our studies underscore how a better understanding of cell-cell communication within the tumour microenvironment can suggest novel strategies for cancer therapy.


Back to top


Preneoplastic and Preinvasive Lesions

Molecular Pathology Preneoplastic and Preinvasive Lesions, PanIN, IPMN, MCN, ICPN, IOPN


- GNAS but Not Extended RAS Mutations Spectrum are Associated with a Better Prognosis in Intraductal Pancreatic Mucinous Neoplasms

Annals of surgical oncology 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31025231

BACKGROUND: The management of intraductal papillary mucinous neoplasms (IPMNs) is mainly based on imaging features and clinical symptoms, and remains challenging. OBJECTIVE: The aim of this study was to assess GNAS, RAS family (KRAS, NRAS and HRAS), BRAF, and PIK3CA mutation status in resected IPMNs and correlate it with clinicopathological characteristics and patient survival. METHODS: Overall, 149 consecutive unselected patients who underwent pancreatectomy for IPMNs were included. After dissection from formalin-fixed and paraffin-embedded tumors, GNAS mutational screening was assessed by allelic discrimination using Taqman® probes and confirmed by SNaPshot analysis. RAS family, BRAF, and PIK3CA mutational screening was assessed by high resolution melt and Sanger sequencing. RESULTS: Gastric- and intestinal-type IPMNs were the most frequent lesions (52% and 41%, respectively). Intestinal-type IPMNs were more frequently associated high-grade dysplasia (49%) and were the only IPMNs associated with colloid-type carcinoma. All pancreatobiliary IPMNs were invasive lesions, located in the main pancreatic duct. GNAS-activating mutations were strongly associated with the intestinal phenotype (p < 10-4), while RAS pathway mutations were not associated with any particular phenotype. Mutations within other members of the epidermal growth factor receptor (EGFR) pathway were very rare (2%). GNAS-mutated IPMNs were rarely invasive (11%) and almost exclusively (83%) of the colloid type. For invasive lesions, multivariate analyses determined that only node negativity was associated with improved cancer-specific survival, but, in univariate analysis, GNAS mutation was associated with prolonged survival. CONCLUSION: In patients selected for surgery, GNAS mutation analysis and tumor phenotype can help to better predict patient prognosis. In the near future, a more precise mutational analysis of IPMNs might help to better tailor their management.


Back to top


Bile Ducts


- Integrating next-generation sequencing to endoscopic retrograde cholangiopancreatography (ERCP)-obtained biliary specimens improves the detection and management of patients with malignant bile duct strictures

Gut 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30971436

OBJECTIVE: Despite improvements in imaging, serum CA19-9 and pathological evaluation, differentiating between benign and malignant bile duct strictures remains a diagnostic conundrum. Recent developments in next-generation sequencing (NGS) have opened new opportunities for early detection and management of cancers but, to date, have not been rigorously applied to biliary specimens. DESIGN: We prospectively evaluated a 28-gene NGS panel (BiliSeq) using endoscopic retrograde cholangiopancreatography-obtained biliary specimens from patients with bile duct strictures. The diagnostic performance of serum CA19-9, pathological evaluation and BiliSeq was assessed on 252 patients (57 trainings and 195 validations) with 346 biliary specimens. RESULTS: The sensitivity and specificity of BiliSeq for malignant strictures was 73% and 100%, respectively. In comparison, an elevated serum CA19-9 and pathological evaluation had sensitivities of 76% and 48%, and specificities of 69% and 99%, respectively. The combination of BiliSeq and pathological evaluation increased the sensitivity to 83% and maintained a specificity of 99%. BiliSeq improved the sensitivity of pathological evaluation for malignancy from 35% to 77% for biliary brushings and from 52% to 83% for biliary biopsies. Among patients with primary sclerosing cholangitis (PSC), BiliSeq had an 83% sensitivity as compared with pathological evaluation with an 8% sensitivity. Therapeutically relevant genomic alterations were identified in 20 (8%) patients. Two patients with ERBB2-amplified cholangiocarcinoma received a trastuzumab-based regimen and had measurable clinicoradiographic response. CONCLUSIONS: The combination of BiliSeq and pathological evaluation of biliary specimens increased the detection of malignant strictures, particularly in patients with PSC. Additionally, BiliSeq identified alterations that may stratify patients for specific anticancer therapies.


Back to top


Gallbladder



Back to top


Ampulla of Vater


- Diagnosis, risk stratification, and management of ampullary dysplasia by DNA flow cytometric analysis of paraffin-embedded tissue

Modern pathology : an official journal of the United States and Canadian Academy of Pathology, Inc 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30976103

The limited accuracy of endoscopic biopsy in detecting high-grade dysplasia or adenocarcinoma within ampullary adenoma or dysplasia has been reported. The natural history of ampullary dysplasia is also unclear, and there are no established guidelines to determine which patients with ampullary dysplasia require resection versus surveillance endoscopy. DNA flow cytometry was performed on 47 ampullary biopsies with low-grade dysplasia, 18 high-grade dysplasia, and 23 negative for dysplasia, as well as 11 cases of ampullary adenocarcinoma. Abnormal DNA content (aneuploidy or elevated 4N fraction > 6%) was identified in 9 (82%) of adenocarcinoma, 13 (72%) of high-grade dysplasia, 7 (15%) of low-grade dysplasia, and none (0%) of non-dysplastic mucosa. One-, 2-, and 7-year detection rates of high-grade dysplasia or adenocarcinoma in low-grade dysplasia patients with abnormal DNA content were 57%, 86%, and 88%, respectively, whereas low-grade dysplasia patients in the setting of normal DNA content had 1-, 2-, and 7-year detection rates of 10%, 10%, and 10%, respectively. The univariate and multivariate hazard ratios (HRs) for subsequent detection of high-grade dysplasia or adenocarcinoma in low-grade dysplasia patients with DNA content abnormality were 16.8 (p = <0.01) and 9.8 (p = <0.01), respectively. Among the 13 high-grade dysplasia patients with DNA content abnormality, 5 patients (38%) were subsequently found to have adenocarcinoma within a mean follow-up time of 3 months, whereas only 1 (20%) of the remaining 5 patients in the setting of normal DNA content developed adenocarcinoma in a month (HR = 2.6, p = 0.39). The overall 1- and 2-year detection rates of adenocarcinoma in all high-grade dysplasia patients (regardless of flow cytometric results) were 34% (95% confidence interval = 16-63%) and 47% (95% confidence interval = 23-79%), respectively. In conclusion, the majority of low-grade dysplasia patients (86%) in the setting of abnormal DNA content developed high-grade dysplasia or adenocarcinoma within 2 years and thus may benefit from resection, whereas those with normal DNA content may be followed with surveillance endoscopy. The presence of DNA content abnormality can also confirm a morphologic suspicion of high-grade dysplasia, which should be managed with resection, as nearly 50% of the high-grade dysplasia patients were found to have adenocarcinoma within 2 years.


Back to top


Neuroendocrine


- The Pancreas as a Site of Metastasis or Second Primary in Patients with Small Bowel Neuroendocrine Tumors

Annals of surgical oncology 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=31011904

BACKGROUND: The small bowel and pancreas are the most common primary sites of neuroendocrine tumors (NETs) giving rise to metastatic disease. Some patients with small bowel NETs (SBNETs) present with synchronous or metachronous pancreatic NETs (PNETs), and it is unclear whether these are separate primaries or metastases from one site to the other. METHODS: A surgical NET database including patients undergoing operations for SBNETs or PNETs was reviewed. Patients with synchronous or metachronous tumors in both the small bowel and pancreas were identified, and available tissues from primary tumors and metastases were examined using a 4-gene quantitative polymerase chain reaction (qPCR) and immunohistochemistry (IHC) panel developed for evaluating NETs of unknown primary. RESULTS: Of 338 patients undergoing exploration, 11 had NETs in both the small bowel and pancreas. Tissues from 11 small bowel tumors, 9 pancreatic tumors, and 10 metastases were analyzed. qPCR and IHC data revealed that three patients had separate SBNET and PNET primaries, and five patients had SBNETs that metastasized to the pancreas. Pancreatic tissue was unavailable in two patients, and qPCR and IHC gave discrepant results in one patient. CONCLUSIONS: NETs in both the small bowel and pancreas were found in 3% of our patients. In nearly two-thirds of evaluable patients, the pancreatic tumor was a metastasis from the SBNET primary, while in the remaining one-third of patients it represented a separate primary. Determining the origin of these tumors can help guide the choice of systemic therapy and surgical management.


Back to top


Others


Case Reports


Pancreas


- A case of high-grade pancreatic intraepithelial neoplasia concomitant with type 1 autoimmune pancreatitis: The process underlying both conditions

Pathology international 2019 Mar;69(3):165-171

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30719801

We report a case of high-grade pancreatic intraepithelial neoplasia (PanIN) concomitant with lymphoplasmacytic sclerosing pancreatitis. The patient was an 82-year-old man in whom narrowing of the main pancreatic duct was detected incidentally by abdominal ultrasonography. Magnetic resonance cholangiopancreatography further revealed abrupt narrowing plus distal dilatation of the duct, from the pancreatic body to the tail. Distal pancreatectomy was performed under a preoperative diagnosis of intraductal papillary-mucinous neoplasm. Macroscopic examination of the surgical specimen showed an ill-demarcated, white-gray area and prominent pancreatic atrophy, while histological analysis detected small (<5 mm in diameter) cystic dilatations of the main pancreatic duct and some branch ducts plus pancreatic atrophy with fibrosis and fatty replacement of acinar cells. We also detected variously sized papillary projections, fused glands, and scattered focal papillary proliferation of columnar ductal epithelium comprising cells with elongated, mildly hyperchromatic nuclei, consistent with high-grade PanIN. In addition, we observed marked lymphoplasmacytic infiltration, periductal storiform fibrosis, and obliterative phlebitis. Immunohistochemical staining revealed abundant immunogloblin G4-positive plasma cells, indicative of type 1 autoimmune pancreatitis (AIP). The coexistence of high-grade PanIN and marked lymphoplasmacytic infiltration, typical of AIP, point to a close association between the former, as a carcinogenic process, and the latter, as an immune response.


  • Pancreatic cancer ‘mismatch’ in Lynch syndrome

https://bmjopengastro.bmj.com/content/6/1/e000274



  • Metastatic low-grade endometrial stromal sarcoma of uterus presenting as a primary pancreatic tumor: case presentation and literature review

https://diagnosticpathology.biomedcentral.com/articles/10.1186/s13000-019-0807-3


  • Macrocystic variant of serous cystadenoma of the pancreas mimicking mucinous neoplasm of pancreas

https://www.semanticscholar.org/paper/Macrocystic-variant-of-serous-cystadenoma-of-the-of-Chan-Chong/71f38ce068c3675906191da82ad1a297b4fbd8c8


  • Solid pseudopapillary neoplasm of the pancreas showing marked distal atrophy: A case report

https://www.semanticscholar.org/paper/Solid-pseudopapillary-neoplasm-of-the-pancreas-A-Tsujie-Wakasa/000280bcd5a0c2ff0680d29c491727f892ed4f5d


  • Metastatic squamous cell carcinoma to the pancreas: Report of an extremely rare case.

https://www.semanticscholar.org/paper/Metastatic-squamous-cell-carcinoma-to-the-pancreas%3A-Machairas-Paspala/bbbd27512982669c8f92e4e14f0c14ce079e13a0


  • Intraductal tubular papillary neoplasm (ITPN), a novel entity of pancreatic epithelial neoplasms and precursor of cancer: A case report and review of the literature

https://www.semanticscholar.org/paper/Intraductal-tubular-papillary-neoplasm-%28ITPN%29%2C-a-of-Fritz-K%C3%BCper-Steffen/883b7a89413a9371ee7fff252e4aafab617b8938?utm_source=alert_email


  • Intraductal tubulopapillary neoplasm (ITPN) of the pancreas with invasive cancer misdiagnosed as a mesenteric cyst for 12 years: a case report and literature review

http://www.ijcep.com/files/ijcep0090309.pdf


  • Sarcomatoid carcinoma of the pancreas: A case report.

https://www.semanticscholar.org/paper/Sarcomatoid-carcinoma-of-the-pancreas%3A-A-case-Zhou-Gao/fafb505d55eea25690047b5a37198b9e5fa66506


Bile Ducts


Gallbladder


- Metastatic Gallbladder Carcinoma in Meningioma: A Case Report

Turkish neurosurgery 2019 7;29(2):297-299

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=28731197

Metastases from tumors to systemic cancers are rare. The most common intracranial recipient tumor is meningioma. Metastasis from gallbladder cancer has been previously reported from only one patient during autopsy. We present a case of a 72-year-old woman who underwent surgery for right frontal skull base meningioma. The tumor was completely removed. Histological specimens showed gallbladder carcinomatous metastasis with diffuse neuroendocrine differentiation in meningothelial meningioma. The Ki-67 proliferation index of the meningioma was 3%. Further, 60% positive immunoreactivity with the progesterone receptor was observed in meningioma cells. In carcinoma cells, diffuse positive immunoreactivity with chromogranin, CDX2, CEA, panCK, cytokeratin 7, and synaptophysin was observed. A combination of molecular, metabolic, immunological, and/or hormonal factors may contribute to the pathogenesis of this lesion. It cannot be ruled out that it is more common than expected.


Ampulla of Vater



Neuroendocrine


- Corticotropin secreting pancreatic neuroendocrine tumour, a therapeutic management challenge. A presentation of 2 cases

Endocrinologia, diabetes y nutricion 2019 Mar;66(3):204-206

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30482522



Back to top


Molecular & Experimental Studies


- Pancreatic adenocarcinomas with mature blood vessels have better overall survival

Scientific reports 2019 Feb;9(1):1310

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30718678

Pancreatic ductal adenocarcinoma (PDAC) is known for its hypovascularity. Bevacizumab, an anti-angiogenic drug, added to standard chemotherapy demonstrated no improvement in outcome for PDAC. Therefore, we hypothesized that increased vascularity may be associated with improved outcomes in PDAC possibly due to better delivery of tumor specific immune cells. To test this hypothesis, PDAC patients were classified into either high or low CD31 expression groups utilizing mRNA expression from RNA-sequence data in The Cancer Genome Atlas (TCGA) pancreatic cancer cohort. High expression of CD31, which indicates presence of more vascular endothelial cells, was associated with significantly better OS (p = 0.002). Multivariate analysis demonstrated that residual tumor (R1, 2; p = 0.026) and CD31 low expression (p = 0.007) were the only independent predictors that negatively impacted OS. Vascular stability as well as immune response related pathways were significantly upregulated in the CD31 high expressing tumors. Furthermore, there were higher proportions of anti-cancer immune cells infiltration, including activated memory CD4+ T cells (p = 0.038), CD8+ T cells (p = 0.027), gamma-delta T cells (p < 0.001) as well as naïve B cells (p = 0.006), whereas lower proportions of regulatory T cell fractions (p = 0.009), which induce an immune tolerant microenvironment, in the CD31 high expressing tumors. These findings imply that stable vessels supply anti-cancer immune cells, which are at least partially responsible for better OS in the CD31 high expressing tumors. In conclusion, CD31 high expressing PDACs have better OS, which may be due to stable vessels that supply anti-cancer immune cells.


- S100A8 and S100A9 proteins form part of a paracrine feedback loop between pancreatic cancer cells and monocytes

BMC cancer 2018 Dec;18(1):1255

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30558665

BACKGROUND: The secretion of soluble factors enables communication between tumour cells and the surrounding microenvironment and plays an important role in oncogenesis. Pancreatic ductal adenocarcinoma (PDAC) is characterised by a highly reactive microenvironment, harbouring a variety of cell types, including S100A8/S100A9-expressing monocytes. S100A8/S100A9 proteins regulate the behaviour of cancer cells by inducing pre-metastatic cascades associated with cancer spread. The aim of this study was to examine how S100A8/A9 proteins mediate tumour-stroma crosstalk in PDAC. METHODS: Cytokine profiling of pancreatic cancer cell-derived conditioned media was performed using Bio-Plex Pro 27 Plex Human Cytokine assays. Protein expression and activation of downstream signalling effectors and NF-κB were assessed by western blotting analysis and reporter assays respectively. RESULTS: Stimulation of cultured pancreatic cancer cells with S100A8 and S100A9 increased the secretion of the pro-inflammatory cytokines IL-8, TNF-α, and FGF. S100A8, but not S100A9 induced PDGF secretion. Conversely, pancreatic cancer cell-derived conditioned media and the individual cytokines, TNF-α and TGF-β induced the expression of S100A8 and S100A9 proteins in the HL-60 monocytic cell line and primary human monocytes, while FGF and IL-8 induced the expression of S100A9 only. S100A8 and S100A9 activated MAPK and NF-κB signalling in pancreatic cancer. This was partially mediated via activation of the receptor of advanced glycosylation end-product (RAGE). CONCLUSION: S100A8 and S100A9 proteins induce specific cytokine secretion from PDAC cells, which in turn enhances the expression of S100A8/A9. This paracrine crosstalk could have implications for PDAC invasiveness and metastatic potential.


Back to top



- Homeodomain-interacting protein kinase 2 suppresses proliferation and aerobic glycolysis via ERK/cMyc axis in pancreatic cancer

Cell proliferation 2019 Apr;():e12603

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30932257

OBJECTIVES: To investigate the roles of the homeodomain-interacting protein kinase (HIPK) family of proteins in pancreatic cancer prognosis and the possible molecular mechanism. MATERIALS AND METHODS: The expression of HIPK family genes and their roles in pancreatic cancer prognosis were analysed by using The Cancer Genome Atlas (TCGA). The roles of HIPK2 in pancreatic cancer proliferation and glycolysis were tested by overexpression of HIPK2 in pancreatic cancer cells, followed by cell proliferation assay, glucose uptake analysis and Seahorse extracellular flux analysis. The mechanism of action of HIPK2 in pancreatic cancer proliferation and glycolysis was explored by examining its effect on the ERK/cMyc axis. RESULTS: Decreased HIPK2 expression indicated worse prognosis of pancreatic cancer. Overexpression of HIPK2 in pancreatic cancer cells decreased cell proliferation and attenuated aerobic glycolysis, which sustained proliferation of cancer cells. HIPK2 decreased cMyc protein levels and expression of cMyc-targeted glycolytic genes. cMyc was a mediator that regulated HIPK2-induced decrease in aerobic glycolysis. HIPK2 regulated cMyc protein stability via ERK activation, which phosphorylated and controlled cMyc protein stability. CONCLUSIONS: HIPK2 suppressed proliferation of pancreatic cancer in part through inhibiting the ERK/cMyc axis and related aerobic glycolysis.



Back to top


Techniques, Research Methods, Liquid Biopsy


Techniques, Research Methods, Liquid Biopsy


- Analysis of BRCAness with multiplex ligation-dependent probe amplification using formalin-fixed and paraffin-embedded pancreatic ductal adenocarcinoma tissue obtained via endoscopic ultrasound-guided fine-needle aspiration biopsy

Pancreatology : official journal of the International Association of Pancreatology (IAP) … [et al.] 2019 Apr;19(3):419-423

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30819577

BACKGROUND/OBJECTIVES: A breakthrough in chemotherapy for pancreatic ductal adenocarcinoma (PDAC) may be achieved using precision medicine, which involves identifying cases that are highly likely to respond to a certain treatment and then performing that treatment. BRCAness has been receiving attention as a novel predictor of anticancer drug sensitivity in PDAC, making the screening of BRCAness paramount. METHODS: We conducted the first-ever examination of the feasibility of analyzing BRCAness using multiplex ligation-dependent probe amplification (MLPA). Formalin-fixed paraffin-embedded (FFPE) tissue samples obtained via endoscopic ultrasound-guided fine-needle aspiration biopsy (EUS-FNAB) from 20 patients with the highest pancreatic carcinoma cell counts in tissue samples out of 40 consecutive PDAC patients who underwent EUS-FNAB at our hospital were analyzed by MLPA for BRCAness. RESULTS: We were able to accurately analyze BRCAness in 75% of the 20 cases of PDAC using FFPE tissue obtained by EUS-FNAB. BRCAness was observed in one of the 20 cases. CONCLUSIONS: In PDAC, analyzing BRCAness by MLPA using FFPE tissue obtained by EUS-FNAB offers the remarkable benefit of yielding results in a short period of time and at a low cost. In addition, this method of BRCAness analysis may prove to be a feasible and effective approach for performing precision medicine.


  • Organoid Models for Cancer Research

https://www.annualreviews.org/doi/abs/10.1146/annurev-cancerbio-030518-055702


Back to top



- Integrating next-generation sequencing to endoscopic retrograde cholangiopancreatography (ERCP)-obtained biliary specimens improves the detection and management of patients with malignant bile duct strictures

Gut 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30971436

OBJECTIVE: Despite improvements in imaging, serum CA19-9 and pathological evaluation, differentiating between benign and malignant bile duct strictures remains a diagnostic conundrum. Recent developments in next-generation sequencing (NGS) have opened new opportunities for early detection and management of cancers but, to date, have not been rigorously applied to biliary specimens. DESIGN: We prospectively evaluated a 28-gene NGS panel (BiliSeq) using endoscopic retrograde cholangiopancreatography-obtained biliary specimens from patients with bile duct strictures. The diagnostic performance of serum CA19-9, pathological evaluation and BiliSeq was assessed on 252 patients (57 trainings and 195 validations) with 346 biliary specimens. RESULTS: The sensitivity and specificity of BiliSeq for malignant strictures was 73% and 100%, respectively. In comparison, an elevated serum CA19-9 and pathological evaluation had sensitivities of 76% and 48%, and specificities of 69% and 99%, respectively. The combination of BiliSeq and pathological evaluation increased the sensitivity to 83% and maintained a specificity of 99%. BiliSeq improved the sensitivity of pathological evaluation for malignancy from 35% to 77% for biliary brushings and from 52% to 83% for biliary biopsies. Among patients with primary sclerosing cholangitis (PSC), BiliSeq had an 83% sensitivity as compared with pathological evaluation with an 8% sensitivity. Therapeutically relevant genomic alterations were identified in 20 (8%) patients. Two patients with ERBB2-amplified cholangiocarcinoma received a trastuzumab-based regimen and had measurable clinicoradiographic response. CONCLUSIONS: The combination of BiliSeq and pathological evaluation of biliary specimens increased the detection of malignant strictures, particularly in patients with PSC. Additionally, BiliSeq identified alterations that may stratify patients for specific anticancer therapies.


  • Three-Dimensional Fixation: Pathological Protocol Following Pancreaticoduodenectomy with Portal Vein Resection for Pancreatic Cancer

https://link.springer.com/article/10.1007/s11605-019-04203-2


Back to top


Reviews, Opinion Articles


  • Molecular envoys pave the way for pancreatic cancer to invade the liver

https://www.ncbi.nlm.nih.gov/pubmed/30850740

https://www.nature.com/articles/d41586-019-00710-z


- Why is pancreatic cancer so deadly? The pathologist’s view

The Journal of pathology 2019 Mar;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30838636

The remarkable aggressiveness of pancreatic cancer has never been fully explained. Although clearly multifactorial, we postulate that venous invasion, a finding seen in most pancreatic cancers but not in most cancers of other organs, may be a significant, underappreciated contributor to the aggressiveness of this disease. Copyright © 2019 Pathological Society of Great Britain and Ireland. Published by John Wiley & Sons, Ltd.


Back to top



Back to top


Animal Studies



Back to top


Oncology and serum marker studies


- Metabolic Alterations as a Signpost to Early Pancreatic Cancer

Gastroenterology 2019 May;156(6):1560-1563

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30926350


  • Promoter methylation of ADAMTS1 and BNC1 as potential biomarkers for early detection of pancreatic cancer in blood

https://clinicalepigeneticsjournal.biomedcentral.com/articles/10.1186/s13148-019-0650-0


Back to top


Epidemiology, Screening, Cancer Risk Factors


Pancreas Epidemiology Screening Cancer Risk Factors


Pancreas Epidemiology Screening Cancer Risk Factors


- Early Detection of Pancreatic Cancer: Opportunities and Challenges

Gastroenterology 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30721664

Most patients with pancreatic ductal adenocarcinoma (PDAC) present with symptomatic, surgically unresectable disease. Although the goal of early detection of PDAC is laudable and likely to result in significant improvement in overall survival, the relatively low prevalence of PDAC renders general population screening infeasible. The challenges of early detection include identification of at-risk individuals in the general population who would benefit from longitudinal surveillance programs and appropriate biomarker and imaging-based modalities used for PDAC surveillance in such cohorts. In recent years, various subgroups at higher-than-average risk for PDAC have been identified, including those with familial risk due to germline mutations, a history of pancreatitis, patients with mucinous pancreatic cysts, and elderly patients with new-onset diabetes. The last 2 categories are discussed at length in terms of the opportunities and challenges they present for PDAC early detection. We also discuss current and emerging imaging modalities that are critical to identifying early, potentially curable PDAC in high-risk cohorts on surveillance.


  • Deleterious Germline Mutations Are a Risk Factor for Neoplastic Progression Among High-Risk Individuals Undergoing Pancreatic Surveillance

https://ascopubs.org/doi/abs/10.1200/JCO.18.01512


- Epidemiology, Tumor Characteristics, and Survival in Patients With Primary Pancreatic Lymphoma: A Large Population-based Study Using the SEER Database

American journal of clinical oncology 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30950860

INTRODUCTION: Primary pancreatic lymphoma (PPL) is an extranodal manifestation of non-Hodgkin lymphoma originating in the pancreas, which constitutes <1% of all pancreatic neoplasms. Because of the rarity of the disease, most data on PPL are derived from case reports and small case series. To provide better insight into the epidemiology, treatment, and outcomes of these patients, we conducted an analysis of patients with PPL from the Surveillance, Epidemiology and End Results (SEER) database, which is presented in this study. METHODS: Patients with PPL were identified using the International Classification of Disease for Oncology, third edition histology codes for lymphoma (9590/3-9734/3), with pancreas (C25.0-C25.9) listed as the primary disease site. We collected data on patient demographics, year of diagnosis, primary tumor site, histology, first line of treatment received, and survival until death or last follow-up for the period 1973-2014. RESULTS: Overall, 835 patients were included. The median (range) age of the study population was 67 (2 to 98) years. The median (95% confidence interval) overall survival for the cohort was 53 (37 to 73) months. On univariable analyses, age, stage, and use of chemotherapy were statistically associated with improved overall survival. Besides these factors, white race was associated with improved cause-specific survival on multivariable analysis. CONCLUSIONS: This large population-based series describes PPL in detail. Younger age, white race, early stage, and initial treatment with chemotherapy are associated with improved survival in patients with PPL.


Bile Duct Epidemiology Screening Cancer Risk Factors


- Increasing negative lymph node count is independently associated with improved long-term survival in resectable perihilar cholangiocarcinomas

Medicine 2019 Apr;98(15):e14943

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30985643

To evaluate the prognostic value of numbers of negative lymph nodes (NLNs) for patients with perihilar cholangiocarcinomas.The surveillance, epidemiology, and end results database was used to screen for patients with perihilar cholangiocarcinomas. Kaplan-Meier and Cox regression analyses were used for statistical evaluations. Subsequently, propensity score matching (PSM) was performed to confirm the results.A total of 938 patients with perihilar cholangiocarcinomas met the inclusion criteria. The cut-off number for the grouping of patients with different numbers of NLNs was 17. Both the univariate and multivariate survival analyses demonstrated that there was a significant improvement in terms of cancer-specific survival for patients with >17 NLNs, compared with patients with ≤17 NLNs. Then, the above results were confirmed via a PSM procedure. Additionally, the independent prognostic value of NLNs was evaluated in subgroup univariate and multivariate analyses of patients with stage I or stage II tumors.The numbers of NLNs were evaluated and determined to be important independent prognostic factors for the cancer-specific survival of patients with perihilar cholangiocarcinomas.


PanNET Epidemiology Screening Cancer Risk Factors


PanNET Epidemiology Screening Cancer Risk Factors


- The impact of surgery in metastatic pancreatic neuroendocrine tumors: a competing risk analysis

Endocrine connections 2019 Mar;8(3):239-251

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30726772

Aim The role of surgery in the treatment of metastatic pancreatic neuroendocrine tumors (PNETs) was controversial. The objectives of this study were to illustrate the impact of surgery in improving the prognosis of patients with metastatic PNETs and build nomograms to predict overall survival (OS) and cancer-specific survival (CSS) based on a large population-based cohort. Methods Patients diagnosed with metastatic PNETs between 2004 and 2015 from the Surveillance, Epidemiology, and End Results (SEER) database were retrospectively collected. Nomograms for estimating OS and CSS were established based on Cox regression model and Fine and Grey’s model. The precision of the nomograms was evaluated and compared using concordance index (C-index) and the area under receiver operating characteristic (ROC) curve (AUC). Results The study cohort included 1966 patients with metastatic PNETs. It was shown that the surgery provided survival benefit for all groups of patients with metastatic PNETs. In the whole study cohort, 1-, 2- and 3-year OS and CSS were 51.5, 37.1 and 29.4% and 53.0, 38.9 and 31.1%, respectively. The established nomograms were well calibrated, and had good discriminative ability, with C-indexes of 0.773 for OS prediction and 0.774 for CSS prediction. Conclusions Patients with metastatic PNETs could benefit from surgery when the surgery tolerance was acceptable. The established nomograms could stratify patients who were categorized as tumor-node-metastasis (TNM) IV stage into groups with diverse prognoses, showing better discrimination and calibration of the established nomograms, compared with 8th TNM stage system in predicting OS and CSS for patients with metastatic PNETs.


  • Gastroenteropancreatic neuroendocrine tumors in Iceland: a population-based study.

https://www.semanticscholar.org/paper/Gastroenteropancreatic-neuroendocrine-tumors-in-a-Gudmundsdottir-Moeller/de5b99b214939f10b913f2d688fbdad57671a9d0


- Pancreatic islet cell tumors in adolescents and young adults

Journal of pediatric surgery 2019 Mar;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30954230

BACKGROUND: Pancreatic islet cell tumors are rare in adolescents, and most studies published to date focus on older patients. We utilized a national database to describe the histology and clinical pattern of pancreatic islet cell tumors in adolescent and young adult (AYA) patients, and to compare AYAs to older adults. We hypothesized that AYAs with pancreatic islet cell tumors would have better overall survival. METHODS: The National Cancer Data Base (NCDB, 1998-2012) was queried for AYA patients (15-39 years) with a pancreatic islet cell tumor diagnosis. Demographics, tumor characteristics, treatment modalities, and outcomes were abstracted and compared to adults (≥40 years). RESULTS: 383 patients (56.4% female, 65% non-Hispanic Whites) were identified, with a median age of 27 (IQR 16-34) years. Islet cell carcinoma was the most common histology. Of patients with known stage of disease, 49% presented with early stage (I or II). Seventy percent of patients underwent surgical resection, including local excision 44%, Whipple procedure 37.5%, or total pancreatectomy 19%. Chemotherapy was utilized in 27% and radiotherapy in 7%. All-cause mortality was 36%. AYA patients underwent more extensive resections (p = 0.001) and had lower mortality rates (p < 0.001), with no differences in tumor stage or use of adjuvant therapies, when compared to adults. CONCLUSIONS: AYA patients with pancreatic islet cell tumors had comparable utilization of adjuvant therapies but underwent more extensive resections and demonstrated a higher overall survival rate than adult counterparts. Further investigation into approaches to earlier diagnosis and tailoring of multimodality therapy of these neoplasms in the AYA population is needed. LEVELS OF EVIDENCE: Prognostic Study, Level II - retrospective study.


- Non-functional pancreatic neuroendocrine tumours: emerging trends in incidence and mortality

BMC cancer 2019 Apr;19(1):334

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30961556

BACKGROUND: Our aim was to determine the epidemiology and recent changes in the trends of non-functional pancreatic neuroendocrine tumours (NF-pNETs) at the population level. In addition, we explored the risk factors that are associated with survival duration. METHODS: Cases were identified form the Surveillance, Epidemiology, and End Results (SEER) Programme database from 2000 to 2014. Data on incidence and incidence-based (IB) mortality for NF-pNET were obtained from this database. Secular trends in age-adjusted incidence and IB mortality were determined by using the Joinpoint Regression program. Data analyses were performed using chi-square tests, Kaplan-Meier curves and Cox proportional hazards regression. RESULTS: Overall, 4766 patients diagnosed with NF-pNET with a median age of 59 years were identified through our descriptive criteria. Caucasian patients accounted for the majority of the study population, and the proportion of patients with distant disease significantly decreased during our study period. Overall, there was an increase in incidence and IB mortality for NF-pNET; however, the rate of increase decreased during the recent years. In addition, the incidence trends of NF-pNET located in the pancreatic head significantly increased, and rates fo increase in IB mortality for NF-pNET in the pancreatic tail decreased in recent years. Additionally, the 1-, 5-, and 10-year survival rates were 79.0, 51.8, 38.1%, respectively. Furthermore, patient age, tumour grade, stage at diagnosis, tumour size, tumour site and resection were associated with mortality. CONCLUSION: Despite increases in incidence and IB mortality, the rate of change in IB mortality for NF-pNET has decreased in recent years. Survival duration displayed a secular increase during the overall period, and the prognosis and survival duration of patients were closely related to the time of diagnosis, age of the patients and size and location of the tumour. Appropriate treatment adjustments based on tumour stage may thus facilitate improvements in patient outcomes.


Ampulla of Vater Epidemiology Screening Cancer Risk Factors


- Incidence and comparative outcomes of periampullary cancer: A population-based analysis demonstrating improved outcomes and increased use of adjuvant therapy from 2004 to 2012

Journal of surgical oncology 2019 03;119(3):303-317

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30561818

BACKGROUND AND OBJECTIVES: Periampullary adenocarcinoma (PAC) is stratified anatomically: ampullary adenocarcinoma (AA), distal cholangiocarcinoma (DCC), duodenal adenocarcinoma (DA), and pancreatic ductal adenocarcinoma (PDAC). We aimed to determine differences in incidence, prognosis, and treatment in stage-matched PAC patients in a longitudinal study. METHODS: PAC patients were identified in The National Cancer Database from 2004 to 2012. Clinicopathological variables were compared between subtypes. Covariate-adjusted treatment use and OS were compared. RESULTS: The 116 705 patients with PAC were identified: 1320 (9%) AA, 3732 (3%) DCC, 7142 (6%) DA, and 95 511 (82%) PDAC. DA, DCC, and PDAC were associated with worse survival compared with AA (hazard ratio [HR], 1.10; 95% CI, 1.1-1.1; HR, 1.50; 95% CI, 1.4-1.6, and HR, 1.90; 95% CI, 1.8-1.9). Among resected patients, DA was associated with improved survival compared with AA (HR, 0.70; 95% CI, 0.67-0.75); DCC and PDAC were associated with worse survival (HR, 1.41; 95% CI, 1.31-1.53 and HR, 2.041; 95% CI, 1.07-2.12). Resected AA, PDAC, and DA, but not DCC, demonstrated significantly improved survival over the studied period. While all patients had increased adjuvant therapy (AT) receipt over time (P < 0.001), only patients with PDAC had increased neoadjuvant therapy (NAT) receipt ( P < 0.001). CONCLUSION: Resected PDAC, AA, and DA were associated with clinically significant improved survival over time, mirroring a concurrent associated increased receipt of AT.


Back to top



Back to top



Pancreas


  • The Unusual Suspects of the Pancreas-Understanding Pancreatic Acinar Cell Carcinomas and Adenomas.

https://www.semanticscholar.org/paper/The-Unusual-Suspects-of-the-Pancreas-Understanding-Luu-Fahlbusch/5dda9d6fc937a0166c02d814a83f1b261626506e


  • Hepatobiliary and pancreatic manifestations in inflammatory bowel diseases: a referral center study

https://www.semanticscholar.org/paper/Hepatobiliary-and-pancreatic-manifestations-in-a-Fousekis-Katsanos/142391e6f4417f82a5a99b9f338202ffedb31d2c


  • Mixed ductal-acinar cell carcinoma of the pancreas: A case report.

https://www.semanticscholar.org/paper/Mixed-ductal-acinar-cell-carcinoma-of-the-pancreas%3A-Shigaki-Hisaka/b18eb11fd6df019705e9c75c7acf1020ebb1379b


  • The Italian Rare Pancreatic Exocrine Cancer Initiative

https://journals.sagepub.com/doi/abs/10.1177/0300891619839461


  • Pancreatic pathology: where are we in 2019?

https://www.surgeryjournal.co.uk/article/S0263-9319(19)30070-5/abstract

- Complete Regression of Advanced Pancreatic Ductal Adenocarcinomas upon Combined Inhibition of EGFR and C-RAF

Cancer cell 2019 Apr;35(4):573-587.e6

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30975481

Five-year survival for pancreatic ductal adenocarcinoma (PDAC) patients remains below 7% due to the lack of effective treatments. Here, we report that combined ablation of EGFR and c-RAF expression results in complete regression of a significant percentage of PDAC tumors driven by Kras/Trp53 mutations in genetically engineered mice. Moreover, systemic elimination of these targets induces toxicities that are well tolerated. Response to this targeted therapy correlates with transcriptional profiles that resemble those observed in human PDACs. Finally, inhibition of EGFR and c-RAF expression effectively blocked tumor progression in nine independent patient-derived xenografts carrying KRAS and TP53 mutations. These results open the door to the development of targeted therapies for PDAC patients.


- Pancreatic Ductal Adenocarcinoma Derived From an Intraductal Papillary Neoplasm With Synchronous Incidental Glucagonoma: A Case Report and Literature Review

Pancreas 2019 04;48(4):e24-e26

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30973467


- Pancreatic Cancer Early Detection and Interception in an Atypical Case of Peutz-Jeghers Syndrome

Pancreas 2019 04;48(4):e29-e30

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30973470


- Factors Predicting Response, Perioperative Outcomes, and Survival Following Total Neoadjuvant Therapy for Borderline/Locally Advanced Pancreatic Cancer

Annals of surgery 2019 Apr;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30946090

MINI: Total neoadjuvant therapy, or systemic induction chemotherapy followed by chemoradiation, is an optimal preoperative sequencing strategy for patients with borderline resectable or locally advanced pancreatic adenocarcinoma. This strategy allows high rate of negative margins despite low frequency of radiologic downstaging with survival dependent on chemotherapy duration and response factors that are potentially modifiable by alteration in initial systemic therapy decisions.This is an open access article distributed under the terms of the Creative Commons Attribution-Non Commercial-No Derivatives License 4.0 (CCBY-NC-ND), where it is permissible to download and share the work provided it is properly cited. The work cannot be changed in any way or used commercially without permission from the journal. http://creativecommons.org/licenses/by-nc-nd/4.0 OBJECTIVE:: To identify predictive factors associated with operative morbidity, mortality, and survival outcomes in patients with borderline resectable (BR) or locally advanced (LA) pancreatic ductal adenocarcinoma (PDAC) undergoing total neoadjuvant therapy (TNT). The optimal preoperative treatment sequencing for BR/LA PDA is unknown. TNT, or systemic chemotherapy followed by chemoradiation (CRT), addresses both occult metastases and positive margin risks and thus is a potentially optimal strategy; however, factors predictive of perioperative and survival outcomes are currently undefined. We reviewed our experience in BR/LA patients undergoing resection from 2010 to 2017 following TNT assessing operative morbidity, mortality, and survival in order to define outcome predictors and response endpoints. One hundred ninety-four patients underwent resection after TNT, including 123 (63%) BR and 71 (37%) LA PDAC. FOLFIRINOX or gemcitabine along with nab-paclitaxel were used in 165 (85%) and 65 (34%) patients, with 36 (19%) requiring chemotherapeutic switch before long-course CRT and subsequent resection. Radiologic anatomical downstaging was uncommon (28%). En bloc venous and/or arterial resection was required in 125 (65%) patients with 94% of patients achieving R0 margins. The 90-day major morbidity and mortality was 36% and 6.7%, respectively. Excluding operative mortalities, the median, 1-year, 2-year, and 3-year recurrence-free survival (RFS) [overall survival (OS)] rates were 23.5 (58.8) months, 65 (96)%, 48 (78)%, and 32 (62)%, respectively. Radiologic downstaging, vascular resection, and chemotherapy regimen/switch were not associated with survival. Only 3 factors independently associated with prolonged survival, including extended duration (≥6 cycles) chemotherapy, optimal post-chemotherapy CA19-9 response, and major pathologic response. Patients achieving all 3 factors had superior survival outcomes with a survival detriment for each failing factor. In a subset of patients with interval metabolic (PET) imaging after initial chemotherapy, complete metabolic response highly correlated with major pathologic response. Our TNT experience in resected BR/LA PDAC revealed high negative margin rates despite low radiologic downstaging. Extended duration chemotherapy with associated biochemical and pathologic responses highly predicted postoperative survival. Potential modifications of initial chemotherapy treatment include extending cycle duration to normalize CA19-9 or achieve complete metabolic response, or consideration of chemotherapeutic switch in order to achieve these factors may improve survival before moving forward with CRT and subsequent resection.This is an open access article distributed under the terms of the Creative Commons Attribution-Non Commercial-No Derivatives License 4.0 (CCBY-NC-ND), where it is permissible to download and share the work provided it is properly cited. The work cannot be changed in any way or used commercially without permission from the journal. http://creativecommons.org/licenses/by-nc-nd/4.0.


- The Role of Exosomes in Pancreatic Cancer Microenvironment

Bulletin of mathematical biology 2018 05;80(5):1111-1133

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=28382422

Exosomes are nanovesicles shed by cells as a means of communication with other cells. Exosomes contain mRNAs, microRNAs (miRs) and functional proteins. In the present paper, we develop a mathematical model of tumor-immune interaction by means of exosomes shed by pancreatic cancer cells and dendritic cells. Cancer cells’ exosomes contain miRs that promote their proliferation and that inhibit immune response by dendritic cells, and by CD4+ and CD8+ T cells. Dendritic cells release exosomes with proteins that induce apoptosis of cancer cells and that block regulatory T cells. Simulations of the model show how the size of the pancreatic cancer can be determined by measurement of specific miRs (miR-21 and miR-203 in the case of pancreatic cancer), suggesting these miRs as biomarkers for cancer.


- Pancreatitis and Pancreatic Cancer

Gastroenterology 2019 Mar;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30940522


- Autophagy Inhibition in Pancreatic Adenocarcinoma

Clinical colorectal cancer 2018 03;17(1):25-31

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=29223362

Although some progress has been made in recent years with the development of more effective chemotherapy regimens, new treatment approaches are needed to improve outcomes for patients with pancreatic adenocarcinoma. The cellular process of autophagy, a cell survival mechanism that allows cancer cells to survive the hazardous conditions of the tumor microenvironment and treatment, has emerged as a viable target in pancreatic cancer. We review the mechanism of autophagy, its role in pancreatic carcinogenesis, the preclinical and clinical evidence supporting targeting autophagy in patients with pancreatic adenocarcinoma, and areas of future investigation that hold promise for improving this treatment approach.


  • Development and validation of a prognostic model to predict the prognosis of patients who underwent chemotherapy and resection of pancreatic adenocarcinoma: a large international population-based cohort study

https://bmcmedicine.biomedcentral.com/articles/10.1186/s12916-019-1304-y


  • Progress in research on pancreatic cancer related signaling pathway

http://www.cancercellresearch.org/PDF/20192108.pdf


- Brain Metastases in Pancreatic Ductal Adenocarcinoma: Assessment of Molecular Genotype-Phenotype Features-An Entity With an Increasing Incidence?

Clinical colorectal cancer 2018 06;17(2):e315-e321

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=29496399

PURPOSE: To assess clinical characteristics of patients with metastatic pancreas ductal adenocarcinoma (PDAC) and brain metastases (BM), and to assess somatic and germ-line molecular profiles where performed. PATIENTS AND METHODS: Patients with PDAC and BM between January 1990 and January 2016 were identified. Molecular characteristics of somatic and germ-line testing where performed in the subset of patients who had provided informed consent. Somatic alterations were assessed by either MSK-IMPACT testing (>340 key cancer genes) or Sequenom testing (8-gene panel). Overall survival was calculated from date of diagnosis to either date of last follow-up or death. Survival after BM was calculated from date of diagnosis of BM by radiology or pathology to either date of last follow-up or death. RESULTS: From a total of 5824 patients with PDAC identified from January 2000 to January 2016, twenty-five patients (0.4%) had BM. Median age at PDAC diagnosis was 58 years. Median time to the development of BM from initial PDAC diagnosis was 17 months (range, 0-79 months). Median overall survival after BM diagnosis was 1.5 months (range, 1-31 months). Overall survival for patients who had craniotomy (n = 4) was 11 months (range, 1-31 months), with 2 long-term survivors at 21 and 31 months, respectively. Four patients had leptomeningeal disease. Six of 25 patients had germ-line testing, and 3 had BRCA mutations (2 BRCA1 and 1 BRCA2). Somatic profiling identified KRAS mutations in 100% (4 G12D, 2 G12V, and 1 Q61K). CONCLUSION: BM from PDAC is a rare event. We identified a speculative association of germ-line BRCA1/2 alterations with BM in PDAC, which requires corroboration. Survival after BM development is poor; prolonged survival occurred in selected patients via a multidisciplinary approach.


- Endoscopic Ultrasound Guidance in Diagnosing a Rare Case of Lung Adenocarcinoma Metastatic to the Pancreas

Pancreas 2019 04;48(4):e30-e31

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30973471


  • Metastatic Tumors to the Pancreas, a Single Center Study.

https://www.semanticscholar.org/paper/Metastatic-Tumors-to-the-Pancreas%2C-a-Single-Center-Geramizadeh-Kashkooe/2dcff23c893b25526d8c1b979372a9bb6eb92d40


  • Glucose metabolism during tumorigenesis in the genetic mouse model of pancreatic cancer

https://link.springer.com/article/10.1007/s00592-019-01335-4


  • Therapeutic challenges and current immunomodulatory strategies in targeting the immunosuppressive pancreatic tumor microenvironment

https://jeccr.biomedcentral.com/articles/10.1186/s13046-019-1153-8


  • Epidemiology, Tumor Characteristics, and Survival in Patients With Primary Pancreatic Lymphoma: A Large Population-based Study Using the SEER Database.

https://www.semanticscholar.org/paper/Epidemiology%2C-Tumor-Characteristics%2C-and-Survival-A-Mukhija-Nagpal/5b8adcfbfc6e9b3202e1f122637ec3a3d7337d46


  • Risk and Predictors of Postoperative Morbidity and Mortality After Pancreaticoduodenectomy for Pancreatic Neuroendocrine Neoplasms: A Comparative Study With Pancreatic Ductal Adenocarcinoma.

https://www.semanticscholar.org/paper/Risk-and-Predictors-of-Postoperative-Morbidity-and-Partelli-Tamburrino/e5bc6c28ee9497d4822fce22c0539f8c3a8435a5


Mouse Models Shed Light on the SLIT/ROBO Pathway in Pancreatic Development and Cancer.

https://www.ncbi.nlm.nih.gov/pubmed/30898261

Comparison of immune infiltrates in melanoma and pancreatic cancer highlights VISTA as a potential target in pancreatic cancer.

https://www.ncbi.nlm.nih.gov/pubmed/30635425

Tumor microenvironment participates in metastasis of pancreatic cancer.

https://www.ncbi.nlm.nih.gov/pubmed/30060755

Deleterious Germline Mutations Are a Risk Factor for Neoplastic Progression Among High-Risk Individuals Undergoing Pancreatic Surveillance

https://ascopubs.org/doi/full/10.1200/JCO.18.01512

Stromal fibronectin expression in patients with resected pancreatic ductal adenocarcinoma.

https://www.ncbi.nlm.nih.gov/pubmed/30736807

Clinical assessment of the GNAS mutation status in patients with intraductal papillary mucinous neoplasm of the pancreas

https://link.springer.com/article/10.1007/s00595-019-01797-7

Adipophilin expression is an indicator of poor prognosis in patients with pancreatic ductal adenocarcinoma: An immunohistochemical analysis.

https://www.ncbi.nlm.nih.gov/pubmed/30879968

Enrichment of oral microbiota in early cystic precursors to invasive pancreatic cancer

https://gut.bmj.com/content/early/2019/03/13/gutjnl-2018-317458.abstract


Abstracts from USCAP 2019: Pancreas, Gallbladder, Ampulla, and Extra-Hepatic Biliary Tree (1667-1734).

https://www.ncbi.nlm.nih.gov/pubmed/30886253

Abstracts from USCAP 2019: Pancreas, Gallbladder, Ampulla, and Extra-Hepatic Biliary Tree (1667-1734).

https://www.ncbi.nlm.nih.gov/pubmed/30886283

Stromal protein βig-h3 reprogrammes tumour microenvironment in pancreatic cancer.

https://www.ncbi.nlm.nih.gov/pubmed/30415234


  • Chromatin remodelling controls pancreatic tissue fate.

https://www.ncbi.nlm.nih.gov/pubmed/30890543


  • Immunoglobulin G4-Related Pancreatitis: Our Experience in a German Cohort of 59 Patients.

https://www.ncbi.nlm.nih.gov/pubmed/30855431


  • Aggressive Fibromatosis of the Pancreas: A Rare Cause of Incomplete Duodenal Obstruction.

https://www.ncbi.nlm.nih.gov/pubmed/30855430


  • Evaluation of efficacy of pancreatic juice cytology for risk classification according to international consensus guidelines in patients with intraductal papillary mucinous neoplasm; a retrospective study

https://www.sciencedirect.com/science/article/pii/S1424390319300493


  • Combination of ERK and autophagy inhibition as a treatment approach for pancreatic cancer

https://www.nature.com/articles/s41591-019-0368-8


  • Pancreatic Juice Exosomal MicroRNAs as Biomarkers for Detection of Pancreatic Ductal Adenocarcinoma

https://www.researchgate.net/publication/331415703_Pancreatic_Juice_Exosomal_MicroRNAs_as_Biomarkers_for_Detection_of_Pancreatic_Ductal_Adenocarcinoma


  • Targeted next generation sequencing of pancreatic solid pseudopapillary neoplasms show mutations in Wnt signaling pathway genes

https://onlinelibrary.wiley.com/doi/abs/10.1111/pin.12778


  • Real-time Targeted Genome Profile Analysis of Pancreatic Ductal Adenocarcinomas Identifies Genetic Alterations that Might be Targeted with Existing Drugs or Used as Biomarkers

https://www.gastrojournal.org/article/S0016-5085(19)32505-3/fulltext


  • Exosomes from Pancreatic Juice: A Step Closer to the Holy Grail?

https://link.springer.com/article/10.1245/s10434-019-07271-5


  • Significance of Cancer Cells at the Vein Edge in Patients with Pancreatic Adenocarcinoma Following Pancreatectomy with Vein Resection

https://link.springer.com/article/10.1007/s11605-019-04126-y


  • Exosomes from Pancreatic Juice: A Step Closer to the Holy Grail?

https://link.springer.com/article/10.1245/s10434-019-07271-5


  • Integrative Analysis of NovelMetabolic Subtypes in PancreaticCancer Fosters New PrognosticBiomarkers

https://iris.unito.it/retrieve/handle/2318/1694079/484693/fonc-09-00115.pdf


  • Is early-stage pancreatic adenocarcinoma truly early: stage migration on final pathology with surgery-first versus neoadjuvant therapy sequencing

https://www.sciencedirect.com/science/article/abs/pii/S1365182X19300668


  • A resected case of recurrent ITPN in the remnant pancreas after pancreatoduodenectomy

https://link.springer.com/article/10.1186/s40792-019-0590-0


  • Intraductal Oncocytic Papillary Neoplasms Clinical-Pathologic Characterization of 24 Cases, With An Emphasis on Associated Invasive Carcinomas

https://journals.lww.com/ajsp/Abstract/publishahead/Intraductal_Oncocytic_Papillary_Neoplasms_.97703.aspx


  • Systematic review of clinical prediction models for survival after surgery for resectable pancreatic cancer

https://onlinelibrary.wiley.com/doi/abs/10.1002/bjs.11111


https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6379296/

https://wjso.biomedcentral.com/articles/10.1186/s12957-019-1574-z

http://cancerdiscovery.aacrjournals.org/content/9/2/173.abstract

https://www.karger.com/Article/Abstract/497291

https://academic.oup.com/carcin/advance-article-abstract/doi/10.1093/carcin/bgz024/5308868

30348057


- Image-Based Profiling of Patient-Derived Pancreatic Tumor-Stromal Cell Interactions Within a Micropatterned Tumor Model

Technology in cancer research & treatment 2018 01;17():1533033818803632

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30348057

Pancreatic cancer is one of the most aggressive cancers with a 5-year patient survival rate of 8.2% and limited availability of therapeutic agents to target metastatic disease. Pancreatic cancer is characterized by a dense stromal cell population with unknown contribution to the progression or suppression of tumor growth. In this study, we describe a microengineered tumor stromal assay of patient-derived pancreatic cancer cells to study the heterotypic interactions of patient pancreatic cancer cells with different types of stromal fibroblasts under basal and drug-treated conditions. The population dynamics of tumor cells in terms of migration and viability were visualized as a functional end point. Coculture with cancer-associated fibroblasts increased the migration of cancer cells when compared to dermal fibroblasts. Finally, we imaged the response of a bromodomain and extraterminal inhibitor on the viability of pancreatic cancer clusters surrounding by stroma in microengineered tumor stromal assay. We visualized a codynamic reduction in both cancer and stromal cells with bromodomain and extraterminal treatment compared to the dimethyl sulfoxide-treated group. This study demonstrates the ability to engineer tumor-stromal assays with patient-derived cells, study the role of diverse types of stromal cells on cancer progression, and precisely visualize a coculture during the screening of therapeutic compounds.

30742911


- Impact of Immunotherapy after Resection of Pancreatic Cancer

Journal of the American College of Surgeons 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30742911

BACKGROUND: Adjuvant immunotherapy has improved outcomes in patients with advanced melanoma; however, the potential benefit for patients with pancreatic ductal adenocarcinoma (PDAC) remains unknown. The aim of this study was to determine the impact of adjuvant chemotherapy and immunotherapy (CTx-IT) compared with CTx alone on patient survival after resection of PDAC. STUDY DESIGN: Patients who underwent resection of PDAC from 2004 to 2015 were identified from the National Cancer Database. Univariate and multivariate Cox proportional hazards models were used to determine predictors of overall survival (OS) based on the type of adjuvant therapy received. Patients who received adjuvant immunotherapy were compared with those who received adjuvant CTx alone by propensity score matching. RESULTS: Of 21,313 patients who received curative-intent resection for PDAC followed by adjuvant systemic therapy, 269 (1.3%) patients were treated with adjuvant CTx-IT. Propensity score matching resulted in a cohort of 477 patients: (229 CTx only and 248 CTx-IT). The 5-year OS was higher in the CTx-IT group compared with CTx alone (29.2% vs 18.3%; p = 0.0045). On multivariate analysis, the addition of adjuvant immunotherapy was associated was improved overall survival (hazard ratio 0.74; p = 0.007). CONCLUSIONS: The addition of adjuvant immunotherapy to chemotherapy is associated with improved survival compared with chemotherapy alone after curative-intent resection of pancreatic adenocarcinoma. Future research is warranted to match specific immunotherapy agents with susceptible patient populations to improve outcomes for this aggressive disease.


- Biomarker-driven and molecularly targeted therapies for pancreatic adenocarcinoma

Seminars in oncology 2018 06;45(3):107-115

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30391013

Pancreatic ductal adenocarcinoma (PDAC) remains a deadly disease with few effective treatment options. Our knowledge of molecular alterations in PDAC has significantly grown and helped identify new therapeutic targets. The success of immune checkpoint inhibition in mismatch repair deficient tumors, PARP inhibitors for tumors with DNA repair defects, and targeting hyaluronan with PEGPH20 in patients with high expressing (hyaluronan-high) tumors are examples of promising biomarker-driven therapies. We review the major biological mechanisms in PDAC and discuss current and future directions for molecularly targeted therapies in this disease.


30747828


- Prediction of Recurrence With KRAS Mutational Burden Using Ultrasensitive Digital Polymerase Chain Reaction of Radial Resection Margin of Resected Pancreatic Ductal Adenocarcinoma

Pancreas 2019 03;48(3):400-411

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30747828

OBJECTIVE: Although complete surgical resection is the only curative method for pancreatic cancer, the radial resection margins of pylorus-preserving pancreaticoduodenectomy specimens might be underevaluated. METHODS: KRAS mutation was assessed with droplet digital polymerase chain reaction on cells collected from the radial resection margins of 81 patients, and the results were compared with those of conventional pathologic resection margin (pRM) evaluation. RESULTS: KRAS mutation was detected in 76 patients (94%), and molecular resection margin (mRM) positivity defined by a KRAS mutation rate of 4.19% or greater was observed in 18 patients (22%). Patients with mRM-positive had significantly worse recurrence-free survival (RFS) than those with mRM-negative in entire groups (P = 0.008) and in subgroups without chemotherapy or radiation therapy (all, P < 0.001). When combined pRMs-mRMs were evaluated, patients with combined pRM-mRM-positive (either pRM- or mRM-positive) had significantly worse RFS than those with combined resection margin-negative (both pRM and mRM negative) by univariate (P = 0.002) and multivariate (P = 0.03) analyses. CONCLUSIONS: KRAS mutational analysis with ultrasensitive droplet digital polymerase chain reaction of the radial resection margin in pancreatic cancer patients who underwent pylorus-preserving pancreaticoduodenectomy can provide more accurate information on RFS by using alone or in combination with conventional pRM evaluation, especially in patients without chemotherapy or radiation therapy.


30768986


- The Role of the Microbiome in Immunologic Development and its Implication For Pancreatic Cancer Immunotherapy

Gastroenterology 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30768986

Our understanding of the microbiome and its role in immunity, cancer initiation, and cancer progression has evolved significantly over the past century. The “germ theory of cancer” was first proposed in the early 20th century, and shortly thereafter the bacterium Helicobacter pylori, and later Fusobacterium nucleatum, were implicated in the development of gastric and colorectal cancers, respectively. However, with the development of reliable mouse models and affordable sequencing technologies, the most fascinating aspect of the microbiome-cancer relationship, where microbes undermine cancer immune surveillance and indirectly promote oncogenesis, has only recently been described. In this review, we highlight the essential role of the microbiome in immune system development and maturation. We review how microbe-induced immune activation promotes oncogenesis, focusing particularly on pancreatic carcinogenesis, and show that modulation of the microbiome augments the anti-cancer immune response and enables successful immunotherapy against pancreatic cancer.


30428588


- From Friend to Enemy: Dissecting the Functional Alteration of Immunoregulatory Components during Pancreatic Tumorigenesis

International journal of molecular sciences 2018 Nov;19(11):

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30428588

Pancreatic ductal adenocarcinoma (PDAC) is a lethal disease with a 5-year survival rate of approximately 8%. More than 80% of patients are diagnosed at an unresectable stage due to metastases or local extension. Immune system reactivation in patients by immunotherapy may eliminate tumor cells and is a new strategy for cancer treatment. The anti-CTLA-4 antibody ipilimumab and anti-PD-1 antibodies pembrolizumab and nivolumab have been approved for cancer therapy in different countries. However, the results of immunotherapy on PDAC are unsatisfactory. The low response rate may be due to poor immunogenicity with low tumor mutational burden in pancreatic cancer cells and desmoplasia that prevents the accumulation of immune cells in tumors. The immunosuppressive tumor microenvironment in PDAC is important in tumor progression and treatment resistance. Switching from an immune tolerance to immune activation status is crucial to overcome the inability of self-defense in cancer. Therefore, thoroughly elucidation of the roles of various immune-related factors, tumor microenvironment, and tumor cells in the development of PDAC may provide appropriate direction to target inflammatory pathway activation as a new therapeutic strategy for preventing and treating this cancer.


30747829


- Development and Biological Analysis of a Novel Orthotopic Peritoneal Dissemination Mouse Model Generated Using a Pancreatic Ductal Adenocarcinoma Cell Line

Pancreas 2019 Mar;48(3):315-322

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30747829

OBJECTIVES: Peritoneal dissemination (PD) is an important cause of morbidity and mortality among patients with pancreatic ductal adenocarcinoma (PDAC). We sought to develop and characterized a novel PD mouse model by using a previously established PDAC cell line TCC-Pan2. METHODS: TCC-Pan2 cell line was characterized for growth rate, tumor markers, histology, and somatic mutations. TCC-Pan2 cells were implanted orthotopically to produce PD. TCC-Pan2 cells from these metastatic foci were expanded in vitro and then implanted orthotopically in mice. This PD model was used for comparing the antitumor effect of paclitaxel and NK105. RESULTS: Orthotopically implanted TCC-Pan2 cells caused tumor formation and PD with high frequency in mice. A potent metastatic subline-Pan2M-was obtained. NK105 exerted a stronger antitumor effect than paclitaxel against Pan2M cells harboring a luciferase gene (Pan2MmLuc). Notably, the survival rate on day 80 in the Pan2MmLuc mouse model was 100% for the NK105 group and 0% for the paclitaxel group. CONCLUSION: TCC-Pan2 cell line and Pan2MmLuc PD model can serve as useful tools for monitoring the responses to antineoplastic agents and for studying PDAC biology.


- Incidence and Mortality Rates of Second Pancreatic Cancer Among Survivors of Digestive Cancers: A Nationwide Population-Based Study

Pancreas 2019 03;48(3):412-419

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30768577

OBJECTIVES: We analyzed the incidence and mortality rates of second pancreatic ductal adenocarcinoma (PDAC) among survivors of digestive cancers in South Korea. METHODS: We evaluated data from the Korea National Health Insurance to identify individuals with digestive cancers in 2005 to 2015. The standardized incidence ratios (SIRs) of second PDACs and survival rates were evaluated. RESULTS: Among 772,534 patients with first digestive cancers, 1696 (0.22%) developed second PDACs. The incidence of second PDACs increased until 10 years since the first cancer diagnosis. Patients with biliary tract cancers (BTCs) showed a higher incidence of second PDACs than did those with gastrointestinal cancers or hepatocellular carcinoma. In ages 20 to 49 years, SIRs (95% confidence interval) were higher in survivors of hepatocellular carcinoma (3.08; 1.04-3.08), gastric cancer (3.40; 1.90-3.40), colorectal cancer (5.00; 2.75-5.00), gallbladder cancer (58.52; 11.81-58.52), intrahepatic cholangiocarcinoma (86.99; 1.73-86.99), extrahepatic cholangiocarcinoma (89.41; 27.42-89.41), and ampulla of Vater cancer (156.78; 48.08-156.78). In ages 50 to 64 years, colorectal cancer (1.42; 1.04-1.42), gastric cancer (1.66; 1.29-1.66), and BTCs revealed higher SIRs. In ages more than 65 years, SIR was increased only in BTCs. Second PDACs revealed a more favorable prognosis than first PDACs. CONCLUSIONS: Careful surveillance for second PDACs after curative treatment of BTCs and colorectal cancers should be considered.


30737032


- SNHG14 enhances gemcitabine resistance by sponging miR-101 to stimulate cell autophagy in pancreatic cancer

Biochemical and biophysical research communications 2019 Mar;510(4):508-514

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30737032

BACKGROUND: Due to the poor prognosis and high mortality (over 90%), Pancreas ductal adenocarcinoma (PDAC) is listed as the 7th leading cause of cancer-related death in the world, while gemcitabine sensitivity is key important in PDAC therapy. SNHG14 is thought to be an oncogene in cancer progression. However, the possible role of SNHG14 underlying the progress of the PDAC cell, specifically in gemcitabine resistance remains to be determined. METHODS: We analyzed the PDAC-related data collected from TCGA. PDAC cell line (SW1990) was used as in vitro model. RT-qPCR and western blot were used to detect the autophagy-related gene expression level. MTT and flow cytometry approaches were used to determine cell viability and apoptosis rate. The luciferase reporter assay was used to confirm the direct interaction between SNHG14 and miR-101. The wound healing assay and transwell assay were used to detect the migration and invasion abilities of PDAC cells. RESULTS: The expression of SNHG14 was significantly higher in the PDAC tissues than in the normal tissues, while miR-101 was significantly downregulated in the PDAC tissues. Moreover, the correlation analysis showed that SNHG14 was negatively correlated with miR-101. The in vitro experiments furthermore confirmed their impacts on PDAC cells. Overexpression of SNHG14 and miR-101 inhibitor significantly enhanced cell proliferation, migration, and invasion rate of PDAC cell line. Moreover, SNHG14 knockdown and miR-101 mimics both led to attenuation of gemcitabine resistance-PDAC cell viability and promoted cell apoptosis rate, as well as the reduction of autophagy-related proteins (such as RAB5A and ATG4D). Overexpression of SNHG14 enhanced PDAC cell progression and inhibited cell apoptosis in gemcitabine treatment, as well as the increase of autophagy-related proteins, thus enhanced the chemoresistance of PDAC cells to gemcitabine. CONCLUSIONS: Collectively, we first time revealed that SNHG14 could sponge miR-101 to enhance PDAC cell progression and find the specific axis of SNHG14/miR-101/autophagy underlying the chemoresistance in PDAC cells to gemcitabine, which could promote the progress of PDAC therapy.


30747226


- A 6‑gene risk score system constructed for predicting the clinical prognosis of pancreatic adenocarcinoma patients

Oncology reports 2019 Mar;41(3):1521-1530

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30747226

Pancreatic adenocarcinoma (PAC) is the most common type of pancreatic cancer, which commonly has an unfavorable prognosis. The present study aimed to develop a novel prognostic prediction strategy for PAC patients. mRNA sequencing data of PAC (the training dataset) were extracted from The Cancer Genome Atlas database, and the validation datasets (GSE62452 and GSE79668) were acquired from the Gene Expression Omnibus database. The differentially expressed genes (DEGs) between good and poor prognosis groups were analyzed by limma package, and then prognosis‑associated genes were screened using Cox regression analysis. Subsequently, the risk score system was constructed and confirmed using Kaplan‑Meier (KM) survival analysis. After the survival associated‑clinical factors were screened using Cox regression analysis, they were performed with stratified analysis. Using DAVID tool, the DEGs correlated with risk scores were conducted with enrichment analysis. The results revealed that there were a total of 242 DEGs between the poor and good prognosis groups. Afterwards, a risk score system was constructed based on 6 prognosis‑associated genes (CXCL11, FSTL4, SEZ6L, SPRR1B, SSTR2 and TINAG), which was confirmed in both the training and validation datasets. Cox regression analysis showed that risk score, targeted molecular therapy, and new tumor (the new tumor event days after the initial treatment according to the TCGA database) were significantly related to clinical prognosis. Under the same clinical condition, 6 clinical factors (age, history of chronic pancreatitis, alcohol consumption, radiation therapy, targeted molecular therapy and new tumor (event days) had significant associations with clinical prognosis. Under the same risk condition, only targeted molecular therapy was significantly correlated with clinical prognosis. In conclusion, the 6‑gene risk score system may be a promising strategy for predicting the outcome of PAC patients.


- Emerging Role of Immune Checkpoint Blockade in Pancreatic Cancer

International journal of molecular sciences 2018 Nov;19(11):

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30405053

Immune checkpoint blockade (ICB) with programmed cell death protein-1(PD-1)/programmed death ligand -1(PD-L1) antibodies has revolutionized the management of several cancers, especially non-small cell lung cancer, melanoma, urothelial, and renal cancer. Pancreatic ductal adenocarcinoma (PDAC) is one of the most aggressive cancers associated with high morbidity and mortality. Based on available data, it’s obvious that ICB has limited success in PDACs, which can be explained by the low immunogenicity and immunosuppressive tumor microenvironment of these tumors. In this review article, we focus on PD-L1 expression and microsatellite instability (MSI) in PDAC, and their roles as prognostic and predictive markers. We also discuss data supporting combination therapies to augment cancer immunity cycle. Combining anti-PD-1/PD-L1 agents with other modalities such as vaccines, chemotherapy, and radiation could potentially overcome resistance patterns and increase immune responsiveness in PDAC.


30755305


- Targeting Pancreatic Stellate Cells in Cancer

Trends in cancer 2019 Feb;5(2):128-142

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30755305

Pancreatic stellate cells (PSCs) are the major contributor to the aggressive, metastatic, and resilient nature of pancreatic ductal adenocarcinoma (PDAC), which has a poor prognosis with a 5-year survival rate of 8%. PSCs constitute more than 50% of the tumor stroma in PDAC, where they induce extensive desmoplasia by secreting abundant extracellular matrix (ECM) proteins. In addition, they establish dynamic crosstalk with cancer cells and other stromal cells, which collectively supports tumor progression via various inter- and intracellular pathways. These cellular interactions and associated pathways may reveal novel therapeutic opportunities against this unmet clinical problem. In this review article, we discuss the role of PSCs in inducing tumor progression, their crosstalk with other cells, and therapeutic strategies to target PSCs.


30768573


- Plasma Pancreastatin Predicts the Outcome of Surgical Cytoreduction in Neuroendocrine Tumors of the Small Bowel

Pancreas 2019 03;48(3):356-362

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30768573

OBJECTIVES: Elevated pancreastatin (PST) levels have been shown to be associated with poor prognosis in small bowel neuroendocrine tumors (NETs). We hypothesized that plasma PST levels that remain elevated following surgical cytoreduction portend a poor prognosis in well-differentiated small bowel NETs. METHODS: Patients diagnosed with small bowel NETs who underwent surgical cytoreduction at our institution were identified. Demographics, histopathologic characteristics, and biochemical data were collected. Only patients who had serial preoperative PST (PreopPST) and postoperative PST (PostopPST) levels were included in this study. Patients were sorted into groups by PST level to assess their response to surgical cytoreduction (group 1, PreopPST/PostopPST normal; group 2, PreopPST elevated/PostopPST normal; group 3, PreopPST/PostopPST elevated). Survival rates were calculated from the date of surgery. RESULTS: PreopPST and PostopPST levels were collected from 300 patients. Patients in groups 1 (n = 74) and 2 (n = 81) had a significant survival advantage compared with patients in group 3 (n = 145) (P < 0.0001). Kaplan-Meier 5- and 10-year survival rates were as follows: group 1: 93% and 82%; group 2: 91% and 65%; and group 3: 58% and 34%, respectively. CONCLUSIONS: Serial monitoring of plasma PST is useful in predicting long-term survival following surgical cytoreduction and can be helpful to identify patients who have a poor prognosis.


30747823


- Expression and Clinical Significance of Protein Kinase RNA-Like Endoplasmic Reticulum Kinase and Phosphorylated Eukaryotic Initiation Factor 2α in Pancreatic Ductal Adenocarcinoma

Pancreas 2019 Mar;48(3):323-328

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30747823

OBJECTIVES: Endoplasmic reticulum stress and subsequent phosphorylation of eukaryotic initiation factor 2α (eIF2α) by protein kinase R-like endoplasmic reticulum kinase (PERK) plays an important role in the development and chemoresistance of pancreatic ductal adenocarcinoma (PDAC). However, the expression and significance of phosphorylated eIF2α (p-eIF2α) and PERK in PDAC have not been examined. METHODS: We examined p-eIF2α and PERK expression in 84 PDAC and paired normal pancreas samples by immunohistochemistry and Western blotting and correlated the results with clinicopathologic parameters and survival. RESULTS: Mean PERK H score was 140.8 in PDAC compared with 82.1 in normal pancreas (P < 0.001). High p-eIF2α expression was present in 56% of PDACs versus 7.6% of normal pancreases (P < 0.001). High PERK and p-eIF2α expression correlated with shorter overall survival (P = 0.048 and P = 0.03, respectively). By multivariate analysis, high p-eIF2α (P = 0.01), positive margin (P = 0.002), and lymph node metastasis (P = 0.01) were independent prognosticators for survival. CONCLUSIONS: The expression levels of PERK and p-eIF2α are higher in PDAC than those in normal pancreas. High levels of PERK and p-eIF2α are predictors of shorter survival in PDAC patients, suggesting that PERK and eIF2α could be promising targets in PDAC.


30756314


- Evaluation of the New American Joint Committee on Cancer Staging Manual 8th Edition for Perihilar Cholangiocarcinoma

Journal of gastrointestinal surgery : official journal of the Society for Surgery of the Alimentary Tract 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30756314

BACKGROUND: The aim was to compare the prognostic accuracy of cross-sectional imaging of the 7th and 8th editions of the American Joint Committee on Cancer(AJCC) staging system for perihilar cholangiocarcinoma(PHC). METHODS: All patients with PHC between 2002 and 2014 were included. Imaging at the time of presentation was reassessed and clinical tumor-node-metastasis (cTNM) stage was determined according to the 7th and 8th editions of the AJCC staging system. Comparison of the prognostic accuracy was performed using the concordance index (c-index). RESULTS: A total of 248 PHC patients were included;45 patients(18.1%) underwent a curative-intent resection, whereas 203 patients(81.9%) did not because they were unfit for surgery or were diagnosed with locally advanced or metastatic disease during workup. Prognostic accuracy was comparable between the 7th and 8th editions (c-index 0.57 vs 0.58). For patients who underwent a curative-intent resection, the prognostic accuracy of the 8th edition (0.67) was higher than the 7th (0.65). For patients who did not undergo a curative-intent resection, the prognostic accuracy was poor in both the 7th as the 8th editions (0.54 vs 0.57). CONCLUSION: The 7th and 8th editions of the AJCC staging system for PHC have comparable prognostic accuracy. Prognostic accuracy was particularly poor in unresectable patients.


30747827


- Performance of DAXX Immunohistochemistry as a Screen for DAXX Mutations in Pancreatic Neuroendocrine Tumors

Pancreas 2019 03;48(3):396-399

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30747827

OBJECTIVES: DAXX immunohistochemistry (IHC) is often used as a surrogate for sequencing. We aimed to elucidate the sensitivity of IHC for DAXX mutation. METHODS: All pancreatic neuroendocrine tumors (PanNETs) with DAXX mutations detected by sequencing and a subset of DAXX wild-type PanNETs were analyzed for DAXX expression by IHC. RESULTS: Of 154 PanNETs with MSK-IMPACT testing, 36 (30%) harbored DAXX mutations. DAXX mutations were associated with TSC2 mutations (46% vs 10%, P < 0.0001), tended to co-occur with MEN1 mutations (63% vs 49%, P = 0.11), and tended to be mutually exclusive with ATRX mutations (11% vs 25%, P = 0.053). Of 27 available DAXX mutant PanNETs, 23 lost DAXX expression (85.2%). All 4 DAXX mutants with retained expression harbored DAXX mutations within the SUMO-interacting motif of the last exon. Telomere-specific fluorescence in situ hybridization demonstrated alternative lengthening of telomeres in all 4 cases. Of 20 PanNETs with wild-type DAXX, 19 retained DAXX IHC expression (95%). CONCLUSIONS: The sensitivity and specificity of IHC for DAXX mutation are 85% and 95%, respectively. Last exon DAXX mutant PanNETs often show alternative lengthening of telomeres despite retained DAXX expression, likely due to escape of nonmediated decay.


30768574


- Desmoplasia in Lymph Node Metastasis of Pancreatic Adenocarcinoma Reveals Activation of Cancer-Associated Fibroblasts Pattern and T-helper 2 Immune Cell Infiltration

Pancreas 2019 03;48(3):367-373

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30768574

OBJECTIVES: Pancreatic ductal adenocarcinoma (PDAC) is characterized by a peritumoral proliferation of fibroblasts and extracellular matrix production known as desmoplasia. We aimed to study desmoplasia in PDAC lymph node (LN) metastases. METHODS: We evaluated LNs from 66 patients with PDAC and LN metastases. We used immunohistochemistry and real-time polymerase chain reaction to phenotype the desmoplastic response. RESULTS: Desmoplasia was identified in 57% of patients with LN metastases (Des+). Cancer-associated fibroblasts (CAFs) in Des+ expressed α-smooth muscle actin and collagen 11A1. The latter expression was present only in CAFs but not in LN stroma or in LN metastases without desmoplasia (Des-). Desmoplasia was associated with upregulation of transforming growth factor β messenger RNA. Whereas numbers of CD8+ in tumor vicinity were not different between Des+ and Des- patients (78 [standard deviation {SD}, 57] vs 92 [SD, 52], P = 0.48, respectively), the numbers of GATA-3+ cells, a marker of T-helper 2 immune response was significantly increased (3.7 [SD, 6.3] for Des+ vs 1.3 [SD, 2.7] for Des-, P < 0.05). CONCLUSIONS: Lymph node desmoplasia is associated with CAF pattern activation and Th2 infiltration. Therapeutic modulation of desmoplasia may be relevant in the metastatic phase and influence antitumor immune response.


29860986


- Immunotherapy and Prevention of Pancreatic Cancer

Trends in cancer 2018 06;4(6):418-428

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=29860986

Pancreatic cancer is the third-leading cause of cancer mortality in the USA, recently surpassing breast cancer. A key component of pancreatic cancer’s lethality is its acquired immune privilege, which is driven by an immunosuppressive microenvironment, poor T cell infiltration, and a low mutational burden. Although immunotherapies such as checkpoint blockade or engineered T cells have yet to demonstrate efficacy, a growing body of evidence suggests that orthogonal combinations of these and other strategies could unlock immunotherapy in pancreatic cancer. In this Review article, we discuss promising immunotherapies currently under investigation in pancreatic cancer and provide a roadmap for the development of prevention vaccines for this and other cancers.


30243879


- Tumor-stromal cross-talk modulating the therapeutic response in pancreatic cancer

Hepatobiliary & pancreatic diseases international : HBPD INT 2018 Oct;17(5):461-472

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30243879

BACKGROUND: Pancreatic ductal adenocarcinoma (PDAC) is a highly malignant solid tumor with a dismal prognosis. The stroma component makes up to 90% of the tumor mass and is thought to be one of the main reasons for the tumor’s high chemoresistance. Cancer associated fibroblasts (CAFs) have previously been identified to be the key stromal players. This is the first time we provide detailed in vitro experiments investigating tumor-stromal interactions when exposed to three well-known chemotherapeutic agents. METHODS: Monocultures, indirect and direct co-cultures of two PDAC cell lines (AsPC and Panc-1) and six primary patients derived CAFs were treated with gemcitabine, nab-paclitaxel and the γ-secretase-inhibitor (GSI) DAPT. The cell viability of each component was measured with XTT. Finally, IL-6 concentrations of the supernatants were analyzed. RESULTS: On the contrary to PDAC cell lines, CAF monocultures hardly responded to any treatment which suggested that stroma (CAFs) itself is more resistant to standard chemo-treatments than the epithelial cancer cells. Moreover, only a weak chemotherapeutic response was observed in direct co-cultures of cancer cells with CAFs. A change in the morphology of direct co-cultures was accompanied with the chemoresistance. CAFs were observed to build cage-like structures around agglomerates of tumor cells. High levels of IL-6 were also associated with a reduced response to therapy. Indirect co-cultures make the tumor-stromal interaction more complex. CONCLUSIONS: CAFs are highly chemoresistant. Direct cell-cell contact and high levels of IL-6 correlate with a high chemoresistance.


30767148


- MiRNA-3653 Is a Potential Tissue Biomarker for Increased Metastatic Risk in Pancreatic Neuroendocrine Tumours

Endocrine pathology 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30767148

Pancreatic neuroendocrine tumours (PNETs) are relatively uncommon, accounting for 1-2% of all pancreatic neoplasms. Tumour grade (based on the Ki67 proliferative index and mitotic rate) is associated with metastatic risk across large cohorts; however, predicting the behaviour of individual tumours can be difficult. Therefore, any tool which could further stratify metastatic risk may be clinically beneficial. We sought to investigate microRNA (miRNA) expression as a marker of metastatic disease in PNETs. Tumours from 37 patients, comprising 23 with locoregional disease (L) and 14 with distant metastases (DM), underwent miRNA profiling. In total 506 miRNAs were differentially expressed between the L and DM groups, with four miRNAs (miR-3653 upregulated, and miR-4417, miR-574-3p and miR-664b-3p downregulated) showing statistical significance. A database search demonstrated that miRNA-3653 was associated with ATRX abnormalities. Mean survival between the two groups was correlated with mean expression of miRNA-3653; however, this did not reach statistical significance (p = 0.204). Although this is a small study, we conclude that miRNA-3653 upregulation may be associated with an increased risk of metastatic disease in PNETS, perhaps through interaction with ATRX and the alternate lengthening of telomeres pathway.


29483829


- MiR-21-mediated Metabolic Alteration of Cancer-associated Fibroblasts and Its Effect on Pancreatic Cancer Cell Behavior

International journal of biological sciences 2018 01;14(1):100-110

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=29483829

In this study, we investigated whether the metabolic alteration of cancer-associated fibroblasts (CAFs) occurs via miR-21 remodeling and the effect of this alteration on pancreatic cancer cells. CAFs and normal fibroblasts (NFs) were isolated and cultured. Glucose consumption and lactic acid production were tested, and lactate dehydrogenase (LDHA), pyruvate kinase m2 (PKM2), and miR-21 expression were examined. The level of glycolysis in CAFs was determined after treatment with a miR-21 inhibitor. Primary miR-21-NC CAFs and miR-21-inhibitor CAFs were indirectly co-cultured with BxPc-3 in vitro, and the invasion capacity of these cells was determined. The aerobic oxidation index of cancer cells and the expression of succinodehydrogenase (SDH) and fumarate hydratase (FH) were assessed. Compared with NFs, CAFs showed enhanced glucose uptake capacity, lactic acid production, and elevated LDHA, PKM2, and miR-21 expression. After miR-21 inhibitor treatment, the extent of glycolysis in CAFs was reduced. After indirect co-culture with CAFs, oxidative phosphorylation and SDH, FH, and MCT expression increased in BxPc-3 cells. After co-culture with miR-21-inhibitor-CAFs, oxidative phosphorylation and invasion ability of the pancreatic cancer cells decreased. MiR-21 was involved in metabolic alteration of CAFs and affected the development of cancer cells. This metabolic alteration may be an important mechanism by which the microenvironment promotes tumor progression in a nonvascular manner.


- Reply to The relationship between obesity in adolescence and pancreatic cancer in adulthood

Cancer 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30768785


- Direct Interactions With Cancer-Associated Fibroblasts Lead to Enhanced Pancreatic Cancer Stem Cell Function

Pancreas 2019 Mar;48(3):329-334

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30747824

OBJECTIVE: Cancer-associated fibroblasts (CAFs) play an important role in the progression of pancreatic ductal adenocarcinoma (PDAC) by promoting tumor cell migration and drug resistance. We determined the impact of CAFs on PDAC cancer stem cells (CSCs). METHODS: Fibroblast cell lines from patients’ tumors were cocultured with PDAC cells and examined for clonogenic growth and self-renewal using colony-forming assays and migration in vitro. Changes in the frequency of CSCs was determined by flow cytometry. The effect of integrin-focal adhesion kinase (FAK) signaling on CAF-mediated clonogenic growth was evaluated using short hairpin RNAs against β1 integrin and FAK as well as a small-molecule FAK inhibitor. RESULTS: Cancer-associated fibroblasts enhanced PDAC clonogenic growth, self-renewal, and migration that was associated with an increase in the frequency of CSCs. These fibroblast cells were activated by PDAC cells and increased collagen synthesis resulting in FAK activation in PDAC cells. Knockdown of β1-integrin and FAK or the inhibition of FAK kinase activity in PDAC cells abrogated the impact of CAFs on clonogenic growth. CONCLUSION: Therefore, CAFs enhance PDAC clonogenic growth, self-renewal, and the frequency of CSCs through type I collagen production that enhances integrin-FAK signaling in PDAC cells.


- Overexpression of BUB1B, CCNA2, CDC20, and CDK1 in tumor tissues predicts poor survival in pancreatic ductal adenocarcinoma

Bioscience reports 2019 Feb;39(2):

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30765611

Overexpressed genes in tumors usually contributed to aggressiveness in pancreatic ductal adenocarcinoma (PDAC). Using Gene Expression Omnibus (GEO) profiles including GSE46234, GSE71989, and GSE107610, we detected overexpressed genes in tumors with R program, which were enriched by Kyoto Encyclopedia of Genes and Genomes (KEGG), Gene ontology (GO), and Reactome pathway databases. Then, we performed a survival analysis of enriched genes based on TCGA profile. Our results revealed that high BUB1B, CCNA2, CDC20, and CDK1 expression in tumors was significantly associated with worse overall survival (OS) (Log rank P=0.00338, P=0.0447, P=0.00965, and P=0.00479, respectively), which was validated using a Kaplan-Meier plotter with a median cutoff (Log rank P=0.028, P=0.0035, P=0.039, and P=0.0033, respectively). Moreover, overexpression of BUB1B, CCNA2, CDC20, and CDK1 in tumor tissues was significantly associated with disease-free survival (DFS) in PDAC patients (Log rank P=0.00565, P=0.0357, P=0.00104, and P=0.00121, respectively). BUB1B, CCNA2, CDC20, and CDK1 were significantly overexpressed in deceased PDAC patients (all P<0.01) and in patients with recurrence/disease progression (all P<0.05). In addition, PDAC patients with neoplasms of histologic grade G3-4 had significantly higher BUB1B, CCNA2 and CDC20 levels (all P<0.05). In conclusion, the up-regulation of BUB1B, CCNA2, CDC20, CDK1, and WEE1 in tumor tissues are associated with worse OS and DFS in PDAC and is correlated with advanced tumor stage and tumor development.


30807303


- Intracholecystic Papillary Neoplasms are Distinct From Papillary Gallbladder Cancers: A Clinicopathologic and Exome-sequencing Study

The American journal of surgical pathology 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30807303

Although intracholecystic papillary neoplasms (ICPNs) have been increasingly recognized, their features remain unclear because of the lack of standardized definition. This study aimed to elucidate clinicopathologic and genetic features of ICPNs using stringent diagnostic criteria. On the basis of the recently proposed criteria, gallbladder neoplasms showing delicate papillary growth were diagnosed as ICPNs, while polypoid papillary adenocarcinomas arranged in a complex architecture were categorized as papillary gallbladder cancers (GBCs). Clinicopathologic features were compared among ICPNs (n=7), papillary GBCs (n=24), and nonpapillary GBCs (n=44). Whole-exome and validation Sanger sequencing was also conducted. Gross mucin hypersecretion was detected in 3/7 ICPNs (43%), 1/24 papillary GBCs (4%), and 1/44 nonpapillary GBCs (2%) (P<0.001). All patients with ICPN lacked lymphovascular invasion and nodal metastasis, while these features were occasionally observed in patients with papillary or nonpapillary GBC (13% to 59%). ICPNs were less advanced than papillary and nonpapillary GBCs (P<0.001) with all cases of ICPNs being recurrence-free. Whole-exome and Sanger sequencing identified somatic mutations in STK11 (a causative gene of Peutz-Jegher syndrome; n=3), CTNNB1 (n=2), and APC (a gene of familial adenomatous polyposis; n=1) in ICPNs, while those alterations were exceptional in papillary and nonpapillary GBCs. ICPNs more commonly showed cytoplasmic and/or nuclear expressions of β-catenin than papillary and nonpapillary GBCs. In conclusion, the histology-based classification of gallbladder papillary neoplasms is useful for identifying ICPNs that share clinicopathologic features with the pancreatic counterpart. ICPNs meeting the criteria were genetically distinct from papillary and nonpapillary GBCs, with STK11, CTNNB1, and APC being identified as major driver genes for ICPNs.


30805811


- Cellular Senescence, Represented by Expression of Caveolin-1, in Cancer-Associated Fibroblasts Promotes Tumor Invasion in Pancreatic Cancer

Annals of surgical oncology 2019 May;26(5):1552-1559

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30805811

BACKGROUND: The role of senescence of cancer-associated fibroblasts (CAFs) in the development of cancer is controversial. In this study, we investigated whether cellular senescence of CAFs, represented by CAV1 expression, affects tumor progression in pancreatic cancers (PC). METHODS: Because CAV1 plays a major role in cellular senescence, we used CAV1 expression to monitor cellular senescence. A total of 157 consecutive patients with PC who underwent curative resection were enrolled in the study. Patients were divided into two groups according to CAV1 expression in CAFs by immunohistochemistry. We investigated the relationship between the CAV1 expression in CAFs and the patients’ clinicopathological characteristics, including survival. We also established ten CAFs cell lines using PC clinical samples and chose one of them to knock down CAV1 expression. Finally, we cultured a PC cell line (MIAPaCa-2) in CAF-conditioned medium (CM). RESULTS: Regarding patients’ clinicopathological characteristics, the serum levels of carbohydrate antigen 19-9 and the rate of advanced tumor stage (pT2, 3, and 4) were significantly higher in the high-CAV1 group. The high-CAV1 group had significantly worse outcomes in both overall and disease-free survival (p < 0.01). Additionally, in co-culture assays using CAFs-CM and MIAPaCa-2 cells, we found that knockdown of CAV1 in CAFs negatively affected the invasion of PC cells. CONCLUSIONS: In PC, CAV1 expression in CAFs is associated with patients’ poor prognosis and the downregulation of CAV1 in CAFs reduces the invasiveness of PC cells. Therefore, CAV1 of CAFs might be a new target for the treatment of PC.


30803874


- Management and surveillance of non-functional pancreatic neuroendocrine tumours: Retrospective review

Pancreatology : official journal of the International Association of Pancreatology (IAP) … [et al.] 2019 Mar;19(2):360-366

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30803874

BACKGROUND: /Objective. To determine the outcomes of a non-operative management approach for sporadic, small, non-functional pancreatic neuroendocrine tumours. METHODS: A retrospective chart review of patients with non-functional pancreatic neuroendocrine tumours initially managed non-operatively at a single institution was performed. Patients were identified through a search of radiologic reports, and individuals with ≥2 cross-sectional imaging studies performed >6 months apart from Jan. 1, 2000 to Dec. 31, 2013 were included. Data on tumour size, radiologic characteristics at diagnosis, interval radiologic growth, and surgical outcomes were recorded. RESULTS: Over the thirteen-year study period, 95 patients met inclusion criteria and were followed radiologically for a median of 36 months (18-69 months). Median initial tumour size on first imaging was 14.0 mm (IQR 10-19 mm). Median overall tumour growth rate was 0.03 mm/month (IQR: 0.00-0.14 mm/month). There was no significant relationship between initial tumour size and growth rate for tumours ≤ 2 cm or for lesions between 2 and 4 cm. Thirteen (14%) patients initially managed non-operatively underwent resection during the follow-up period. Reasons for surgery included interval tumour growth, patient anxiety or preference, or diagnostic uncertainty. Median time to surgery was 14 months (IQR 8-19 months). No patients progressed beyond resectability or developed metastatic disease during the observation period. CONCLUSION: For patients with sporadic, small, non-functional pancreatic neuroendocrine tumours, radiologic surveillance appears to be a safe initial approach to management.


- Silencing of MUC20 suppresses the malignant character of pancreatic ductal adenocarcinoma cells through inhibition of the HGF/MET pathway

Oncogene 2018 11;37(46):6041-6053

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=29993037

Mucins are heavily glycosylated proteins that play critical roles in the pathogenesis of tumour malignancies. Pancreatic ductal adenocarcinoma (PDAC) is characterised by the aberrant expression of mucins. However, the role of mucin (MUC) 20 in PDAC remains unclear. PDAC is usually surrounded by a dense fibrotic stroma consisting of an extracellular matrix and pancreatic stellate cells (PSCs). The stroma creates a nutrient-deprived, hypoxic, and acidic microenvironment, and promotes the malignant behaviours of PDAC cells. In this study, immunohistochemical staining demonstrated that high MUC20 expression correlated with poor progression-free survival and high local recurrence rate of PDAC patients (n = 61). The expression of MUC20 was induced by serum deprivation, hypoxia, and acidic pH in PDAC cells. MUC20 knockdown with siRNA decreased cell viability, as well as migration and invasion induced by PSCs in HPAC and HPAF-II cells. In intraperitoneal, subcutaneous, and orthotopic injection models, MUC20 knockdown decreased tumour growth in immunodeficient mice. Phospho-RTK array and western blot analysis indicated that MUC20 knockdown decreased HGF-mediated phosphorylation of MET in PDAC cells. Moreover, HGF-induced malignant phenotypes could be suppressed by MUC20 knockdown. Co-immunoprecipitation revealed the physical association of MUC20 and MET. These findings suggest that MUC20 knockdown suppresses the malignant phenotypes of PDAC cells at least partially through the inhibition of the HGF/MET pathway and that MUC20 could act as a potential therapeutic target.


30814496


- MTA2-mediated inhibition of PTEN leads to pancreatic ductal adenocarcinoma carcinogenicity

Cell death & disease 2019 Feb;10(3):206

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30814496

Metastasis-associated protein 2 (MTA2) is a core subunit of the nucleosome remodeling and deacetylating (NuRD) complex and functions by mediating chromatin remodeling and gene silencing. However, its biological actions and clinical significance in pancreatic ductal adenocarcinoma (PDAC) remain elusive. The aim of this study was to explore the function and regulation mechanism of MTA2 in PDAC. As shown in GEO, ICGC, and TCGA databases, a higher expression of MTA2 was noticed in the PDAC tissues than in the normal pancreatic tissues. Moreover, a higher expression level of MTA2 was associated with a shorter overall survival time in these public PDAC databases. We further investigated the underlying mechanisms of these observations by using a chromatin immunoprecipitation (ChIP)-based deep sequencing, luciferase reporter, and quantitative ChIP assays. We identified the repressive binding of MTA2 to the promoter of phosphatase and tensin homolog (PTEN). We also found that Snail recruited MTA2 and HDAC1 to suppress PTEN expression. Ectopic expression and knockdown of MTA2 were performed to evaluate the effects of this gene on PDAC cell proliferation, migration, and invasion. Using CCK-8, colony formation and transwell assays, and a xenograft tumor model, we revealed that MTA2 promoted PDAC cell proliferation, migration, and invasion in vitro and PDAC tumor growth in vivo by downregulation of PTEN. In benzyl isothiocyanate (BITC)-treated MIA Paca-2 cells and PANC-1 cells, MTA2 level decreased in a dose- and time-dependent manner with concomitant upregulation of PTEN level and downregulation of phosphorylated PI3K and AKT levels, providing evidence of the involvement of MTA2 and PTEN in the regulation of the PI3K/AKT pathway in BITC-mediated PDAC suppression. Collectively, these findings uncover a novel role for MTA2 in the regulation of PDAC progression and help to elucidate the mechanisms involved in this process.



- Is it time to standardize fine needle aspiration of gall bladder lesions and what city name it will be stamped with?

CytoJournal 2019 01;16():2

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30820232


- Intrahepatic Cholangiocarcinoma: Rising Burden and Glaring Disparities

Annals of surgical oncology 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30820787


- Pancreatic Juice Exosomal MicroRNAs as Biomarkers for Detection of Pancreatic Ductal Adenocarcinoma

Annals of surgical oncology 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30820789

BACKGROUND: Pancreatic ductal adenocarcinoma (PDAC) is a lethal neoplasm because of difficulties in early detection. Several studies have recently suggested that exosomes may have potential as novel biomarkers. This study aimed to isolate exosomes from pancreatic juice and to investigate whether exosomal microRNAs (ex-miRs) could be used as biomarkers for PDAC. METHODS: Pancreatic juice was collected from patients with PDAC and chronic pancreatitis (CP) by endoscopic retrograde pancreatography. Exosomes were extracted by ultracentrifugation. The presence of exosomes was confirmed by electron microscopy and Western blotting using anti-CD63, -CD81, and -TSG101 antibodies. Relative levels of ex-miR-21 and ex-miR-155 were quantified and compared between PDAC and CP patients. RESULTS: A total of 35 pancreatic juice samples (27 PDAC and 8 CP) were collected. Relative levels of both ex-miR-21 and ex-miR-155 were significantly higher in PDAC patients compared with CP patients (p < 0.001 and p = 0.008, respectively). By contrast, no significant difference was apparent in relative levels of miR-21 and miR-155 in whole pancreatic juice from PDAC patients compared with CP patients (p = 0.08 and p = 0.61, respectively). Ex-miR-21 and ex-miR-155 levels discriminated PDAC patients from CP patients with area under the curve values of 0.90 and 0.89, respectively. The accuracies of ex-miR-21 levels, ex-miR-155 levels, and pancreatic juice cytology were 83%, 89%, and 74%, respectively. When combining the results of ex-miR profiling with pancreatic juice cytology, the accuracy was improved to 91%. CONCLUSIONS: We successfully extracted exosomes from pancreatic juice. Ex-miRs, including ex-miR-21 and ex-miR-155, in pancreatic juice may be developed as biomarkers for PDAC.


- Is early-stage pancreatic adenocarcinoma truly early: stage migration on final pathology with surgery-first versus neoadjuvant therapy sequencing

HPB : the official journal of the International Hepato Pancreato Biliary Association 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30799277

BACKGROUND: Neoadjuvant therapy (NT) remains controversial in early-stage pancreatic ductal adenocarcinoma (PDAC), defined as clinical (c)Stage I-II. Our aim was to analyze rates of pathologic upstaging/downstaging for resectable PDAC treated with surgery-first (SF) vs. NT. METHODS: Utilizing the National Cancer Data Base (NCDB), patients with cStage I-II PDAC who underwent pancreatoduodenectomy in 2006-2013 were pathologically staged using the AJCC 8th edition and compared by treatment sequencing. RESULTS: Among 13,871 patients, 15.3% received NT. Despite higher pre-treatment T-stage (cT2: 71.9% vs. 56.3%, p < 0.001), NT patients had lower rates of pathologic nodal metastases (46.2% vs. 69.2% in SF, p < 0.001), suggesting higher rates of pathologic downstaging. In cStage II, 33.0% were upstaged to stage III after SF, vs. only 14.0% after NT. In cStage I, 65.5% were upstaged following SF, vs. 46.7% after NT (all p < 0.001). Patients with NT (HR-0.77, p < 0.001) or downstaging (HR-0.80, p < 0.001) had improved overall survival (OS). CONCLUSION: NT is associated with reduction in unexpected upstaging, reduction in nodal positivity, and improved OS, compared to SF approach in putatively early-stage PDAC. Because clinical staging underestimates the underlying disease burden in resectable PDAC, patients with cStage I-II should be considered for NT.


- A tangled tale of molecular subtypes in pancreatic cancer

Gut 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30814120


- BioMethyl: An R package for Biological Interpretation of DNA Methylation Data

Bioinformatics (Oxford, England) 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30799505

MOTIVATION: The accumulation of publicly available DNA methylation data sets has resulted in the need for tools to interpret the specific cellular phenotypes in bulk tissue data. Current approaches use either single differentially methylated CpG sites or differentially methylated regions that map to genes. However, these approaches may introduce biases in downstream analyses of biological interpretation, because of the variability in gene length. There is a lack of approaches to interpret DNA methylation effectively. Therefore, we have developed computational models to provide biological interpretation of relevant gene sets using DNA methylation data in the context of The Cancer Genome Atlas (TCGA). RESULTS: We illustrate that biological interpretation of DNA methylation (BioMethyl) utilizes the complete DNA methylation data for a given cancer type to reflect corresponding gene expression profiles and performs pathway enrichment analyses, providing unique biological insight. Using breast cancer as an example, BioMethyl shows high consistency in the identification of enriched biological pathways from DNA methylation data compared to the results calculated from RNA sequencing data. We find that 12 out of 14 pathways identified by BioMethyl are shared with those by using RNA-seq data, with a Jaccard score 0.8 for estrogen receptor (ER) positive samples. For ER negative samples, three pathways are shared in the two enrichments with a slight lower similarity (Jaccard score=0.6). Using BioMethyl, we can successfully identify those hidden biological pathways in DNA methylation data when gene expression profile is lacking. AVAILABILITY: BioMethyl R package is freely available in the GitHub repository (https://github.com/yuewangpanda/BioMethyl). SUPPLEMENTARY INFORMATION: Supplementary data are available at Bioinformatics online.


- Statistical Guidance for Reviewers of Toxicologic Pathology

Toxicologic pathology 2018 08;46(6):647-652

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=29966505

Study design, statistical analysis, interpretation of results, and conclusions should be a part of all research papers. Statistics are integral to each of these components and are therefore necessary to evaluate during manuscript peer review. Research published in Toxicological Pathology is often focused on animal studies that may seek to compare defined treatment groups in randomized controlled experiments or focus on the reliability of measurements and diagnostic accuracy of observed lesions from preexisting studies. Reviewers should distinguish scientific research goals that aim to test sufficient effect size differences (i.e., minimizing false positive rates) from common toxicologic goals of detecting a harmful effect (i.e., minimizing false negative rates). This journal comprises a wide range of study designs that require different kinds of statistical assessments. Therefore, statistical methods should be described in enough detail so that the experiment can be repeated by other research groups. The misuse of statistics will impede reproducibility.



  • Comparison of Tumor Regression Grading of Residual Pancreatic Ductal Adenocarcinoma Following Neoadjuvant Chemotherapy Without Radiation Would Fewer Tier-Stratification Be Favorable Toward Standardization?

https://journals.lww.com/ajsp/Abstract/2019/03000/Comparison_of_Tumor_Regression_Grading_of_Residual.5.aspx


  • Isolated pulmonary recurrence after resection of pancreatic cancer: the effect of patient factors and treatment modalities on survival

https://www.sciencedirect.com/science/article/abs/pii/S1365182X19300024


  • MDH1 and MPP7 regulate autophagy in pancreatic ductal adenocarcinoma

http://cancerres.aacrjournals.org/content/early/2019/02/14/0008-5472.CAN-18-2553.short


  • Characteristics and long-term survival of resected pancreatic cystic neoplasms in Finland. The first nationwide retrospective cohort analysis

https://www.sciencedirect.com/science/article/pii/S1424390319300316


  • Ex vivo organotypic culture system of precision-cut slices of human pancreatic ductal adenocarcinoma

https://www.nature.com/articles/s41598-019-38603-w


  • Direct Interactions With Cancer-Associated Fibroblasts Lead to Enhanced Pancreatic Cancer Stem Cell Function

https://journals.lww.com/pancreasjournal/Abstract/publishahead/Direct_Interactions_With_Cancer_Associated.98464.aspx


  • Prediction of Recurrence With KRAS Mutational Burden Using Ultrasensitive Digital Polymerase Chain Reaction of Radial Resection Margin of Resected Pancreatic Ductal Adenocarcinoma

https://journals.lww.com/pancreasjournal/Abstract/publishahead/Prediction_of_Recurrence_With_KRAS_Mutational.98468.aspx


  • The IL-1/IL-1 receptor axis and tumor cell released inflammasome adaptor ASC are key regulators of TSLP secretion by cancer associated fibroblasts in pancreatic cancer

https://jitc.biomedcentral.com/articles/10.1186/s40425-019-0521-4


  • Expression and Clinical Significance of Protein Kinase RNA–Like Endoplasmic Reticulum Kinase and Phosphorylated Eukaryotic Initiation Factor 2α in Pancreatic Ductal Adenocarcinoma

https://journals.lww.com/pancreasjournal/Abstract/publishahead/Expression_and_Clinical_Significance_of_Protein.98463.aspx


  • The Genetic Basis of Transcriptional and Spatial Heterogeneity of Squamous Features in Pancreatic Ductal Adenocarcinoma

https://europepmc.org/abstract/ppr/ppr70162


  • The Genetic Basis of Transcriptional and Spatial Heterogeneity of Squamous Features in Pancreatic Ductal Adenocarcinoma

https://www.researchgate.net/publication/331130625_The_Genetic_Basis_of_Transcriptional_and_Spatial_Heterogeneity_of_Squamous_Features_in_Pancreatic_Ductal_Adenocarcinoma


  • Prediction of Recurrence With KRAS Mutational Burden Using Ultrasensitive Digital Polymerase Chain Reaction of Radial Resection Margin of Resected Pancreatic Ductal Adenocarcinoma

https://www.researchgate.net/publication/331058662_Prediction_of_Recurrence_With_KRAS_Mutational_Burden_Using_Ultrasensitive_Digital_Polymerase_Chain_Reaction_of_Radial_Resection_Margin_of_Resected_Pancreatic_Ductal_Adenocarcinoma


  • Molecular subtypes of pancreatic cancer

https://www.nature.com/articles/s41575-019-0109-y


  • A case of high‐grade pancreatic intraepithelial neoplasia concomitant with type 1 autoimmune pancreatitis: the process underlying both conditions

https://onlinelibrary.wiley.com/doi/abs/10.1111/pin.12768


  • Pre-existing Functional Heterogeneity of Tumorigenic Compartment as the Origin of Chemoresistance in Pancreatic Tumors

https://www.sciencedirect.com/science/article/pii/S221112471930066X


  • Intraductal tubular papillary neoplasm (ITPN), a novel entity of pancreatic epithelial neoplasms and precursor of cancer: A case report and review of the literature

https://www.sciencedirect.com/science/article/pii/S2210261219300495


  • Early Detection of Pancreatic Cancer: Opportunities and Challenges

https://ac.els-cdn.com/S0016508519303580/1-s2.0-S0016508519303580-main.pdf?_tid=5258710f-ba0e-4800-9f6a-2c9b3a66d2e0&acdnat=1549550306_4d1b0748d87c2fa9b57232bccca24f25


  • Pathways of Progression From Intraductal Papillary Mucinous Neoplasm to Pancreatic Ductal Adenocarcinoma Based on Molecular Features

https://www.gastrojournal.org/article/S0016-5085(18)35160-6/fulltext?dgcid=raven_jbs_etoc_email&mobileUi=0&fbclid=IwAR1PP6mTLSlcIgJYOBHE6kSKIF5tXS-8wRIO4PExyr0cMy1ysEc05wu5g3c


  • Fibroblasts in Pancreatic Ductal Adenocarcinoma: biological mechanisms and therapeutic targets

https://www.sciencedirect.com/science/article/pii/S0016508519303592


  • Natural History and Treatment Trends in Pancreatic Cancer Subtypes

https://link.springer.com/article/10.1007/s11605-019-04113-3


  • Prevalence of Germline Mutations Associated with Cancer Risk in Patients With Intraductal Papillary Mucinous Neoplasms

https://www.gastrojournal.org/article/S0016-5085(19)30353-1/fulltext


  • PRRX1 isoforms cooperate with FOXM1 to regulate the DNA damage response in pancreatic cancer cells

https://www.nature.com/articles/s41388-019-0725-6


  • Signaling Networks that Control Cellular Plasticity in Pancreatic Tumorigenesis, Progression and Metastasis

https://www.gastrojournal.org/article/S0016-5085(19)30351-8/fulltext


  • Hes1 plays an essential role in Kras-driven pancreatic tumorigenesis

https://www.nature.com/articles/s41388-019-0718-5


  • Diagnosis and Management of Pancreatic Adenocarcinoma in the Background of Chronic Pancreatitis: Core Issues

https://www.karger.com/Article/Abstract/496507


  • MDH1 and MPP7 regulate autophagy in pancreatic ductal adenocarcinoma

https://www.researchgate.net/profile/Padhmanand_Sudhakar2/publication/331099191_MDH1_and_MPP7_regulate_autophagy_in_pancreatic_ductal_adenocarcinoma/links/5c65a14945851582c3e95df4/MDH1-and-MPP7-regulate-autophagy-in-pancreatic-ductal-adenocarcinoma.pdf


  • Cyst Fluid Biosignature to Predict Intraductal Papillary Mucinous Neoplasms of the Pancreas with High Malignant Potential

https://www.sciencedirect.com/science/article/pii/S1072751519301498


- Wnt/β-catenin signalling plays diverse functions during the process of fibrotic remodelling in the exocrine pancreas

Pancreatology : official journal of the International Association of Pancreatology (IAP) … [et al.] 2019 Mar;19(2):252-257

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30792046

BACKGROUND/OBJECTIVES: Wnt/β-catenin signalling plays vital roles in tissue homeostasis. Dysregulation of the pathway has been implicated in the pathogenesis of cancer and fibroses in numerous tissues, including the pancreas. We studied the effect of microenvironmental changes pertaining to fibrotic tissue remodelling on the expression of selected Wnt/β-catenin pathway proteins in the human exocrine pancreas. The role of acinar/stellate cross-talk on the expression of the proteins was elucidated in a long-term mouse co-culture system. METHODS: Expression of β-catenin, Wnt2, Wnt5a and SFRP4 was analysed immunohistochemically in normal and moderately or highly fibrotic human pancreata (n = 8). The effect of humoral interactions on the expression of the proteins was studied by immunocytochemical means in parallel mono- and co-cultures of mouse acinar and stellate cells (PSCs). RESULTS: In human pancreatic tissue, fibrotic microenvironment was associated with redistribution of the proteins in and between epithelial and stromal compartments, compared to acinar-rich tissue. In non-fibrotic and moderately fibrotic tissue the proteins appeared only in acinar cells whereas in highly fibrotic tissue stromal fibroblastoid/stellate cells and macrophages were their predominant locations. Subcellular changes in the expression of β-catenin and Wnt5a were detected. Our in vitro data suggest potential involvement of acinar cell/PSC cross-talk in mediating the changes observed in tissue specimens. CONCLUSIONS: Wnt/β-catenin pathway-associated proteins are abundantly expressed in the exocrine pancreas with prominent changes in their cellular and subcellular expression patterns along with increasing levels of fibrosis. Diverse functions for Wnt/β-catenin signalling during the course of fibrotic remodelling in the exocrine pancreas are suggested.


- The value of cytology in the management of patients with pancreatic cysts

Cancer cytopathology 2019 Mar;127(3):141-142

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30668886


- Integration of Genomic and Transcriptional Features in Pancreatic Cancer Reveals Increased Cell Cycle Progression in Metastases

Cancer cell 2019 Feb;35(2):267-282.e7

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30686769

We integrated clinical, genomic, and transcriptomic data from 224 primaries and 95 metastases from 289 patients to characterize progression of pancreatic ductal adenocarcinoma (PDAC). Driver gene alterations and mutational and expression-based signatures were preserved, with truncations, inversions, and translocations most conserved. Cell cycle progression (CCP) increased with sequential inactivation of tumor suppressors, yet remained higher in metastases, perhaps driven by cell cycle regulatory gene variants. Half of the cases were hypoxic by expression markers, overlapping with molecular subtypes. Paired tumor heterogeneity showed cancer cell migration by Halstedian progression. Multiple PDACs arising synchronously and metachronously in the same pancreas were actually intra-parenchymal metastases, not independent primary tumors. Established clinical co-variates dominated survival analyses, although CCP and hypoxia may inform clinical practice.


- Pancreatic cancer stem cells: A state or an entity?

Seminars in cancer biology 2018 12;53():223-231

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30130664

Pancreatic ductal adenocarcinoma (PDAC), the most common type of pancreatic cancer, has a median overall survival of 6-12 months and a 5-year survival of less than 7%. While PDAC currently represents the 4th most frequent cause of death due to cancer worldwide, it is expected to become the second leading cause of cancer-related death by 2030. These alarming statistics are primarily due to both the inherent chemoresistant and metastatic nature of this tumor, and the existence of a subpopulation of highly plastic “stem”-like cells within the tumor, known as cancer stem cells (CSCs). Since their discovery in PDAC in 2007, we have come to realize that pancreatic CSCs have unique metabolic, autophagic, invasive, and chemoresistance properties that allow them to continuously self-renew and escape chemo-therapeutic elimination. More importantly, the concept of the CSC as a fixed entity within the tumor has also evolved, and current data suggest that CSCs are states rather than defined entities. Consequently, current treatments for the majority of PDAC patients are not effective, and do not significantly impact overall patient survival, as they do not adequately target the plastic CSC sub-population nor the transient/hybrid cells that can replenish the CSC pool. Thus, it is necessary that we improve our understanding of the characteristics and signals that maintain and drive the pancreatic CSC population in order to develop new therapies to target these cells. Herein, we will provide the latest updates and knowledge on the inherent characteristics of pancreatic CSCs and the CSC niche, specifically the cross-talk that exists between CSCs and niche resident cells. Lastly, we will address the question of whether a CSC is a state or an entity and discuss how the answer to this question can impact treatment approaches.


  • Integration of Genomic and Transcriptional Features in Pancreatic Cancer Reveals Increased Cell Cycle Progression in Metastases

https://www.researchgate.net/publication/330663612_Integration_of_Genomic_and_Transcriptional_Features_in_Pancreatic_Cancer_Reveals_Increased_Cell_Cycle_Progression_in_Metastases


  • Germline BRCA2 K3326X and CHEK2 I157T Mutations Increase Risk for Sporadic Pancreatic Ductal Adenocarcinoma

https://www.researchgate.net/publication/330605511_Germline_BRCA2_K3326X_and_CHEK2_I157T_Mutations_Increase_Risk_for_Sporadic_Pancreatic_Ductal_Adenocarcinoma


  • Germline BRCA2 K3326X and CHEK2 I157T Mutations Increase Risk for Sporadic Pancreatic Ductal Adenocarcinoma

https://onlinelibrary.wiley.com/doi/abs/10.1002/ijc.32127



  • Main Duct Dilatation Is the Best Predictor of High-grade Dysplasia or Invasion in Intraductal Papillary Mucinous Neoplasms of the Pancreas

https://journals.lww.com/annalsofsurgery/Abstract/publishahead/Main_Duct_Dilatation_Is_the_Best_Predictor_of.95248.aspx


  • Timing But Not Patterns of Recurrence Is Different Between Node-negative and Node-positive Resected Pancreatic Cancer.

https://europepmc.org/abstract/med/30672796


  • Utility of cytomorphology in distinguishing solid pseudopapillary neoplasm of pancreas from pancreatic neuroendocrine tumor with emphasis on nuclear folds and nuclear grooves

https://onlinelibrary.wiley.com/doi/abs/10.1002/dc.24145


  • THZ1 reveals CDK7-dependent transcriptional addictions in pancreatic cancer

https://www.nature.com/articles/s41388-019-0701-1


  • Predictive and Prognostic Properties of Human Equilibrative Nucleoside Transporter 1 Expression in Gemcitabine-Treated Pancreatobiliary Cancer: A Meta-Analysis

http://ascopubs.org/doi/abs/10.1200/PO.18.00240


  • Quasimesenchymal phenotype predicts systemic metastasis in pancreatic ductal adenocarcinoma

https://www.nature.com/articles/s41379-018-0196-2


  • Surgically resected pancreatic metastasis from nasal malignant melanoma: case report and literature review

https://link.springer.com/article/10.1007/s12328-019-00936-4


  • Prognostic Role of High-Grade Tumor Budding in Pancreatic Ductal Adenocarcinoma: A Systematic Review and Meta-Analysis with a Focus on Epithelial to Mesenchymal Transition

https://res.mdpi.com/cancers/cancers-11-00113/article_deploy/cancers-11-00113.pdf


  • Comparative Accuracy of Tumor Size Assessment and Stage Analysis by Imaging Modalities Versus Gross Examination for Pancreatic Ductal Adenocarcinoma

https://journals.lww.com/pancreasjournal/Abstract/2019/02000/Comparative_Accuracy_of_Tumor_Size_Assessment_and.13.aspx


  • Blocking CXCLs–CXCR2 axis in tumor–stromal interactions contributes to survival in a mouse model of pancreatic ductal adenocarcinoma through reduced cell invasion/migration and a shift of immune-inflammatory microenvironment

https://www.nature.com/articles/s41389-018-0117-8


  • Pathways of Progression From Intraductal Papillary Mucinous Neoplasm to Pancreatic Ductal Adenocarcinoma Based on Molecular Features

https://www.sciencedirect.com/science/article/pii/S0016508518351606


  • Prognostic Role of High-Grade Tumor Budding in Pancreatic Ductal Adenocarcinoma: A Systematic Review and Meta-Analysis with a Focus on Epithelial to Mesenchymal Transition

https://www.mdpi.com/2072-6694/11/1/113


  • Ezrin promotes stem cell properties in pancreatic ductal adenocarcinoma

http://mcr.aacrjournals.org/content/early/2019/01/17/1541-7786.MCR-18-0367.abstract


  • Exosomes harbor B cell targets in pancreatic adenocarcinoma and exert decoy function against complement-mediated cytotoxicity

https://www.nature.com/articles/s41467-018-08109-6


  • Immunotherapy in pancreatic cancer: new hope or mission impossible?

https://www.sciencedirect.com/science/article/pii/S0304383519300138


  • Microvessel Density and Impact of Angiogenesis on Survival of Resected Pancreatic Cancer Patients A Systematic Review and Meta-analysis

https://journals.lww.com/pancreasjournal/Abstract/publishahead/Microvessel_Density_and_Impact_of_Angiogenesis_on.98481.aspx


  • RER1 enhances carcinogenesis and stemness of pancreatic cancer under hypoxic environment

https://jeccr.biomedcentral.com/articles/10.1186/s13046-018-0986-x


  • Survivals of patients with surgically treated and High‐grade pancreatic neuroendocrine carcinomas: A comparative study between two American Joint Committee on Cancer 8th tumor-node-metastasis staging systems

https://www.sciencedirect.com/science/article/pii/S0748798319300101


  • Pancreatic Cystic Lesions in Cases of Autoimmune Pancreatitis.

https://www.ncbi.nlm.nih.gov/pubmed/30640232


  • How Can We Practically Implement Screening for Intraductal Papillary Mucinous Neoplasm of the Pancreas as the Main Focus for Early Detection of Pancreatic Adenocarcinoma?

https://www.ncbi.nlm.nih.gov/pubmed/30640227


  • Cytologic Analysis of Pancreatic Juice Increases Specificity of Detection of Malignant IPMN – A Systematic Review

https://www.sciencedirect.com/science/article/pii/S1542356519300072


  • Undifferentiated carcinoma with osteoclast-like giant cells of the pancreas arising from an intraductal papillary mucinous neoplasm

https://www.sciencedirect.com/science/article/pii/S2214330018301597


  • Mutation analysis by deep sequencing of pancreatic juice from patients with pancreatic ductal adenocarcinoma

https://link.springer.com/article/10.1186/s12885-018-5195-7


  • CD73 expression in normal and pathological human hepatobiliopancreatic tissues

https://link.springer.com/article/10.1007/s00262-018-2290-1


  • Diagnostic Yield From Screening Asymptomatic Individuals at High Risk for Pancreatic Cancer: A Meta-analysis of Cohort Studies

https://www.cghjournal.org/article/S1542-3565(18)30498-1/fulltext


  • Expression of estrogen receptor beta isoforms in pancreatic adenocarcinoma

http://www.oncotarget.com/index.php?journal=oncotarget&page=article&op=view&path%5B%5D=26503


  • Clinical significance of revised microscopic positive resection margin status in ductal adenocarcinoma of pancreatic head

https://www.researchgate.net/publication/330069141_Clinical_significance_of_revised_microscopic_positive_resection_margin_status_in_ductal_adenocarcinoma_of_pancreatic_head


  • Pancreatic Cysts: Sinister Findings or Incidentalomas?

https://www.researchgate.net/publication/330042701_Pancreatic_Cysts_Sinister_Findings_or_Incidentalomas


  • Crosstalk between the Tumor Microenvironment and Immune System in Pancreatic Ductal Adenocarcinoma: Potential Targets for New Therapeutic Approaches

https://www.researchgate.net/publication/329781544_Crosstalk_between_the_Tumor_Microenvironment_and_Immune_System_in_Pancreatic_Ductal_Adenocarcinoma_Potential_Targets_for_New_Therapeutic_Approaches


  • Oncogenic KRAS supports pancreatic cancer through regulation of nucleotide synthesis

https://www.nature.com/articles/s41467-018-07472-8


  • Subtyping of intraductal papillary mucinous neoplasms – pitfalls of MUC1 immunohistochemistry

https://onlinelibrary.wiley.com/doi/abs/10.1111/apm.12900


  • DeltaNp63-dependent super enhancers define molecular identity in pancreatic cancer by an interconnected transcription factor network

https://www.pnas.org/content/early/2018/12/11/1812915116.short


  • Silencing of MUC20 suppresses the malignant character of pancreatic ductal adenocarcinoma cells through inhibition of the HGF/MET pathway

Oncogene volume 37, pages 6041–6053 (2018)

https://www.nature.com/articles/s41388-018-0403-0


  • Combating pancreatic cancer with PI3K pathway inhibitors in the era of personalised medicine

https://gut.bmj.com/content/early/2018/11/05/gutjnl-2018-316822


  • The role of GLI-SOX2 signaling axis for gemcitabine resistance in pancreatic cancer

https://www.nature.com/articles/s41388-018-0553-0


  • PIN1 maintains redox balance via the c-Myc/NRF2 axis to counteract Kras-induced mitochondrial respiratory injury in pancreatic cancer cells

http://cancerres.aacrjournals.org/content/canres/early/2018/10/24/0008-5472.CAN-18-1968.full.pdf


  • DYRK1A modulates c-MET in pancreatic ductal adenocarcinoma to drive tumour growth

https://gut.bmj.com/content/early/2018/10/20/gutjnl-2018-316128


  • ADAM12 is a circulating marker for stromal activation in pancreatic cancer and predicts response to chemotherapy

https://www.nature.com/articles/s41389-018-0096-9


  • Neoepitope targets of tumour-infiltrating lymphocytes from patients with pancreatic cancer

https://www.nature.com/articles/s41416-018-0262-z


  • Pancreatic ductal adenocarcinoma harboring microsatellite instability / DNA mismatch repair deficiency. Towards personalized medicine.

https://www.sciencedirect.com/science/article/pii/S0960740418301245


  • Pancreatic cancer arising in the remnant pancreas is not always a relapse of the preceding primary

https://www.researchgate.net/publication/329122741_Pancreatic_cancer_arising_in_the_remnant_pancreas_is_not_always_a_relapse_of_the_preceding_primary


  • Undifferentiated carcinoma with osteoclast-like giant cells of pancreas A case report with review of the computed tomography findings

https://journals.lww.com/md-journal/Fulltext/2018/11300/Undifferentiated_carcinoma_with_osteoclast_like.100.aspx


  • Clinico‐pathological features and survival of patients with malignant exocrine pancreatic neoplasms: The AC Camargo Cancer Center experience

https://onlinelibrary.wiley.com/doi/abs/10.1002/jso.25312


  • Role of adjuvant therapy in resected stage IA subcentimeter (T1a/T1b) pancreatic cancer: Adjuvant therapy for subcentimeter PDAC

https://www.researchgate.net/publication/329079327_Role_of_adjuvant_therapy_in_resected_stage_IA_subcentimeter_T1aT1b_pancreatic_cancer_Adjuvant_therapy_for_subcentimeter_PDAC


  • International Validation of the Eighth Edition of the American Joint Committee on Cancer (AJCC) TNM Staging System in Patients With Resected Pancreatic Cancer

link


  • Pancreatic Ductal Adenocarcinoma and Its Precursor Lesions: Histopathology, Cytopathology, and Molecular Pathology

https://www.sciencedirect.com/science/article/pii/S0002944018301512


  • Diagnostic and Prognostic Impact of Neutrophil-to-Lymphocyte Ratio for Intraductal Papillary Mucinous Neoplasms of the Pancreas With High-Grade Dysplasia and Associated Invasive Carcinoma

https://www.researchgate.net/publication/329302661_Diagnostic_and_Prognostic_Impact_of_Neutrophil-to-Lymphocyte_Ratio_for_Intraductal_Papillary_Mucinous_Neoplasms_of_the_Pancreas_With_High-Grade_Dysplasia_and_Associated_Invasive_Carcinoma


  • The efficacy and safety of endoscopic ultrasound-guided ablation of pancreatic cysts with alcohol and paclitaxel a systematic review

https://journals.lww.com/eurojgh/Abstract/2019/01000/The_efficacy_and_safety_of_endoscopic.1.aspx


  • Intraductal papillary mucinous neoplasm complicated by a gastropancreatic fistula

https://www.sciencedirect.com/science/article/pii/S193004331830373X


  • Risk of advanced lesions in patients with branch-duct IPMN and relative indications for surgery according to European evidence-based guidelines

https://www.sciencedirect.com/science/article/pii/S1590865818312672


  • The Paradoxical Web of Pancreatic Cancer Tumor Microenvironment

https://www.sciencedirect.com/science/article/pii/S0002944018301561


  • Immunosuppressive βig-h3 links tumour stroma and dysfunctional T cells in pancreatic cancer

https://gut.bmj.com/content/early/2018/12/07/gutjnl-2018-317735


  • Primordial germ cells as a potential shared cell of origin for mucinous cystic neoplasms of the pancreas and mucinous ovarian tumors

https://www.researchgate.net/publication/327757413_Primordial_germ_cells_as_a_potential_shared_cell_of_origin_for_mucinous_cystic_neoplasms_of_the_pancreas_and_mucinous_ovarian_tumors


  • Pancreatic Choristoma in a Canine Gallbladder

https://www.sciencedirect.com/science/article/pii/S0021997518302020


  • Tumefactive Inflammatory Diseases of the Pancreas

https://www.sciencedirect.com/science/article/pii/S0002944018302025


  • Pancreatic cystic tumors an update

https://journals.lww.com/jpancreatology/Fulltext/2018/12000/Pancreatic_cystic_tumors__an_update.2.aspx


  • Crosstalk between the Tumor Microenvironment and Immune System in Pancreatic Ductal Adenocarcinoma: Potential Targets for New Therapeutic Approaches

https://www.hindawi.com/journals/grp/2018/7530619/


  • Pyloric Gland Adenoma of Gallbladder: A Review of Diagnosis and Management

https://www.hindawi.com/journals/amed/2018/7539694/


  • Loss of KDM6A characterizes a poor prognostic subtype of human pancreatic cancer and potentiates HDAC inhibitor lethality

https://onlinelibrary.wiley.com/doi/abs/10.1002/ijc.32072


  • The dual role of HMGB1 in pancreatic cancer

https://journals.lww.com/jpancreatology/Fulltext/2018/12000/The_dual_role_of_HMGB1_in_pancreatic_cancer.3.aspx


  • A systematic assessment of statistics, risk factors, and underlying features involved in pancreatic cancer

https://www.sciencedirect.com/science/article/pii/S1877782118305101


  • Cytopathological results of initial endoscopic ultrasound‐guided fine needle aspiration for primary mass and prognosis in pancreatic cancer patients

https://onlinelibrary.wiley.com/doi/10.1111/cyt.12675


  • Analysis of dynamic molecular networks for pancreatic ductal adenocarcinoma progression

https://cancerci.biomedcentral.com/articles/10.1186/s12935-018-0718-5


  • Utilizing cell line-derived organoids to evaluate the efficacy of a novel LIFR-inhibitor, EC359 in targeting pancreatic tumor stroma

http://www.impactjournals.com/Genes&Cancer/files/papers/1/184/184.pdf


  • Cancer-associated acinar-to-ductal metaplasia within the invasive front of pancreatic cancer contributes to local invasion

https://www.sciencedirect.com/science/article/pii/S0304383518307201


  • Expression of estrogen receptor beta isoforms in pancreatic adenocarcinoma

December 2018Oncotarget 9(102) DOI: 10.18632/oncotarget.26503


  • Mesenchymal chondrosarcoma metastasising to the pancreas

https://casereports.bmj.com/content/11/1/e226369


  • PIK3CA in Kras G12D/Trp53 R172H Tumor Cells Promotes Immune Evasion by Limiting Infiltration of T Cells in a Model of Pancreatic Cancer

https://www.biorxiv.org/content/biorxiv/early/2019/01/15/521831.full.pdf

  • Appropriateness of pancreatic resection in high-risk individuals for familial pancreatic ductal adenocarcinoma: a patient-level meta-analysis and proposition of the Beaujon score

https://journals.sagepub.com/doi/pdf/10.1177/2050640618824910


  • Pancreatic cancer microenvironment: a current dilemma

https://link.springer.com/article/10.1186/s40169-019-0221-1


  • Are BRCA1 and BRCA2 gene mutation patients underscreened for pancreatic adenocarcinoma?

https://onlinelibrary.wiley.com/doi/10.1002/jso.25376


  • KrasG12D mutation contributes to regulatory T cell conversion through activation of the MEK/ERK pathway in pancreatic cancer

https://www.sciencedirect.com/science/article/pii/S0304383519300254


  • Determining the optimal number of examined lymph nodes for accurate staging of pancreatic cancer: An analysis using the nodal staging score model

https://www.sciencedirect.com/science/article/pii/S0748798319300411


  • Genetics of Familial and Sporadic Pancreatic Cancer

https://www.sciencedirect.com/science/article/pii/S0016508519300563


  • Lymphoepithelial cyst of the pancreas: A case report and summary of imaging features of pancreatic cysts

https://www.sciencedirect.com/science/article/pii/S2210261219300331


- Pathomorphological features of metastatic lymph nodes as predictors of postoperative prognosis in pancreatic cancer

Medicine 2019 Feb;98(5):e14369

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30702628

To investigate the pathological features of metastatic lymph nodes (LN) in pancreatic ductal adenocarcinoma (PDAC) and to determine factors with prognostic implications.Metastatic LN status is a proven significant factor for predicting postoperative prognosis in pancreatic cancer patients. However, the effective prognostic criteria regarding metastatic LNs for such disease remain unknown.We retrospectively reviewed 98 patients with R0/1 resection for PDAC. All metastatic LNs were evaluated for the pathomorphological features of metastasis and analyzed in terms of postoperative outcomes. Various morphological patterns of metastasis were assessed in 440 positive LNs and then classified into 4 groups: common type, direct type (continuously invaded by the main tumor), scatter type (multiple tumor clusters among the normal LN tissues), and isolated tumor cell (ITC).The pathological stage was defined as stage IIA in 10% and IIB in 90% patients. Common-type metastasis was noted in 55% positive LNs of 75% node-positive patients; direct type in 36% LNs of 69% patients; scatter type in 5% LNs of 14% patients; and ITCs in 5% LNs of 18% patients. Significant difference was noted only in recurrence-free survival (RFS) but not in overall survival (OS) in the common-type; only in OS but not in RFS for the scatter type; and neither in RFS nor OS for both direct type and ITC. Multivariate analysis revealed that only LN ratio and curability were independent predictive factors of poor.The tumor distribution patterns in metastatic LNs are the postoperative prognostic factors in pancreatic cancer.


  • Development of a Class Prediction Model to Discriminate Pancreatic Ductal Adenocarcinoma from Pancreatic Neuroendocrine Tumor by MALDI Mass Spectrometry Imaging

https://onlinelibrary.wiley.com/doi/abs/10.1002/prca.201800046


  • Back Cover: Development of a Class Prediction Model to Discriminate Pancreatic Ductal Adenocarcinoma from Pancreatic Neuroendocrine Tumor by MALDI Mass Spectrometry Imaging

https://onlinelibrary.wiley.com/doi/abs/10.1002/prca.201970013


- Pancreatitis in Children

Gastroenterology 2019 Feb;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30716320

Acute, acute recurrent, and chronic forms of pancreatitis have been increasingly diagnosed in children in the past 2 decades. Risk factors in the pediatric group are broad and appear to be strikingly different compared with the adult cohort. However, the disease burden and impact on quality of life are surprisingly similar in children and adults. This review summarizes the definitions, epidemiology, risk factors, diagnosis, and management of pediatric pancreatitis, identifies features that are unique to the childhood-onset disease, identifies gaps, and proposes recommendations for future opportunities.


  • Genomic Profiling in Pancreatic Ductal Adenocarcinoma and a Pathway towards Therapy Individualization: A Scoping Review

https://www.sciencedirect.com/science/article/pii/S0305737219300519


  • Genome-wide CRISPR screen reveals PSMA6 to be an essential gene in pancreatic cancer cells

https://bmccancer.biomedcentral.com/articles/10.1186/s12885-019-5455-1


Back to top


Bile Ducts

Gallbladder Polyps: Rare Lesions in Childhood.

https://www.ncbi.nlm.nih.gov/pubmed/30889123

Molecular Perturbations in Cholangiocarcinoma: Is it Time for Precision Medicine?

https://onlinelibrary.wiley.com/doi/abs/10.1111/liv.14085

Preoperative diagnosis of well-differentiated neuroendocrine tumor in common hepatic duct by brush cytology: A case report.

https://www.ncbi.nlm.nih.gov/pubmed/30884200


MACC1 promotes angiogenesis in cholangiocarcinoma by upregulating VEGFA.

https://www.ncbi.nlm.nih.gov/pubmed/30881041


  • Trends in the Incidence, Treatment and Outcomes of Patients with Intrahepatic Cholangiocarcinoma in the USA: Facility Type is Associated with Margin Status, Use of Lymphadenectomy and Overall Survival

https://link.springer.com/article/10.1007/s00268-019-04966-4


  • Premalignant Lesions of the Biliary Tract

https://www.surgical.theclinics.com/article/S0039-6109(18)30170-1/abstract


  • Cholangiolocellular Carcinoma With “Ductal Plate Malformation” Pattern May Be Characterized by ARID1A Genetic Alterations

https://journals.lww.com/ajsp/Abstract/2019/03000/Cholangiolocellular_Carcinoma_With__Ductal_Plate.7.aspx


- Intrahepatic Cholangiocarcinoma: Socioeconomic Discrepancies, Contemporary Treatment Approaches and Survival Trends from the National Cancer Database

Annals of surgical oncology 2019 Jan;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30693451

OBJECTIVE: The aim of this study was to evaluate socioeconomic discrepancies in current treatment approaches and survival trends among patients with intrahepatic cholangiocarcinoma (ICC). METHODS: The 2004-2015 National Cancer Database was retrospectively analyzed for histopathologically proven ICC. Treatment predictors were evaluated using multinomial logistic regression and overall survival via multivariable Cox models. RESULTS: Overall, 12,837 ICC patients were included. Multiple factors influenced treatment allocation, including age, education, comorbidities, cancer stage, grade, treatment center, and US state region (multivariable p < 0.05). The highest surgery rates were observed in the Middle Atlantic (28.7%) and lowest rates were observed in the Mountain States (18.4%). Decreased ICC treatment likelihood was observed for male African Americans with Medicaid insurance and those with low income (multivariable p < 0.05). Socioeconomic treatment discrepancies translated into decreased overall survival for patients of male sex (vs. female; hazard ratio [HR] 1.21, 95% confidence interval [CI] 1.16-1.26, p < 0.001), with low income (< $37,999 vs. ≥ $63,000 annually; HR 1.07, 95% CI 1.01-1.14, p = 0.032), and with Medicaid insurance (vs. private insurance; HR 1.13, 95% CI 1.04-1.23, p = 0.006). Both surgical and non-surgical ICC management showed increased survival compared with no treatment, with the longest survival for surgery (5-year overall survival for surgery, 33.5%; interventional oncology, 11.8%; radiation oncology/chemotherapy, 4.4%; no treatment, 3.3%). Among non-surgically treated patients, interventional oncology yielded the longest survival versus radiation oncology/chemotherapy (HR 0.73, 95% CI 0.65-0.82, p < 0.001). CONCLUSIONS: ICC treatment allocation and outcome demonstrated a marked variation depending on socioeconomic status, demography, cancer factors, and US geography. Healthcare providers should address these discrepancies by providing surgery and interventional oncology as first-line treatment to all eligible patients, with special attention to the vulnerable populations identified in this study.


  • Proposal for a new classification for perihilar cholangiocarcinoma based on tumour depth

https://onlinelibrary.wiley.com/doi/abs/10.1002/bjs.11063


  • Impact of Tumour Budding Grade in 310 Patients Who Underwent Surgical Resection for Extrahepatic Cholangiocarcinoma

https://onlinelibrary.wiley.com/doi/abs/10.1111/his.13827?af=R


  • Impact of Tumour Budding Grade in 310 Patients Who Underwent Surgical Resection for Extrahepatic Cholangiocarcinoma

https://onlinelibrary.wiley.com/doi/abs/10.1111/his.13827?af=R


  • Impact of Tumor Location on Postoperative Outcome of Intraductal Papillary Neoplasm of the Bile Duct

https://link.springer.com/article/10.1007/s00268-019-04913-3


  • Mucinous cystic neoplasm of the liver with biliary communication: an exception to the current classification

https://casereports.bmj.com/content/12/1/bcr-2018-227063.abstract


  • Outcome Determining Factors of Intraductal Papillary Neoplasm of the Biliary Tract (IPNB)—a Single Center Survey and Analysis of Current Literature

https://link.springer.com/article/10.1007/s12029-018-00199-1


  • An autopsy case of primary extranodal NK/T cell lymphoma (extranodal NK/T-cell lymphoma) of the bile duct

https://www.researchgate.net/publication/330096117_An_autopsy_case_of_primary_extranodal_NKT_cell_lymphoma_extranodal_NKT-cell_lymphoma_of_the_bile_duct


  • Intraductal Papillary Neoplasm of the Bile Duct: Assessment of Invasive Carcinoma and Long-Term Outcomes using MRI

https://www.researchgate.net/publication/329664727_Intraductal_Papillary_Neoplasm_of_the_Bile_Duct_Assessment_of_Invasive_Carcinoma_and_Long-Term_Outcomes_using_MRI


  • Heterotopic chondroid tissue of the main bile duct mimicking Klatskin tumor: case report and review of the literature

https://link.springer.com/article/10.1007/s12328-018-00928-w


  • Prognostic Significance of the Lymph Node Ratio in Surgical Patients With Distal Cholangiocarcinoma

https://www.sciencedirect.com/science/article/pii/S0022480418307753


  • Clinical practice guidelines for IgG4-related sclerosing cholangitis

link


  • Frequency and feasibility of detecting FGFR mRNA expression in archival samples of patients with cholangiocarcinoma (CCA).

http://ascopubs.org/doi/abs/10.1200/JCO.2019.37.4_suppl.281


  • Differences in overall survival for patients with cholangiocarcinoma: Racial/ethnic disparity or socioeconomic factors?

https://www.researchgate.net/publication/330804968_Differences_in_overall_survival_for_patients_with_cholangiocarcinoma_Racialethnic_disparity_or_socioeconomic_factors


- Intrahepatic cholangiocarcinoma: the AJCC/UICC 8th edition updates

Chinese clinical oncology 2018 Oct;7(5):52

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30180751

Intrahepatic cholangiocarcinoma accounts for 5% to 30% of all primary liver cancers, and its incidence has increased in the last 3 decades. Surgical resection remains the only potentially curative treatment but is associated with high tumor recurrence rates. The 7th edition of the American Joint Committee on Cancer (AJCC) Staging Manual introduced a new staging system for intrahepatic cholangiocarcinoma, which was previously staged the same as hepatocellular carcinoma. The recently published 8th edition has subdivided the T1 category to T1a and T1b based on a size cutoff of 5 cm, removed periductal invasion from the T4 category, and downstaged T4 tumors and regional lymph node metastasis from stage IV to IIIB. Continued international efforts to accurately stratify prognosis are important to counsel patients and guide treatment decisions.


Back to top



  • Aretrospectiveanalysisofpatientswithgallbladdercancer:surgicaltreatmentandsurvivalaccordingtotumorstage

https://www.researchgate.net/profile/Alvaro_Garcia-Sesma/publication/324369181_A_retrospective_analysis_of_patients_with_gallbladder_cancer_surgical_treatment_and_survival_according_to_tumor_stage/links/5b841b60299bf1d5a72b6a5d/A-retrospective-analysis-of-patients-with-gallbladder-cancer-surgical-treatment-and-survival-according-to-tumor-stage.pdf


  • Natural History and Treatment Trends in Pancreatic Cancer Subtypes

https://www.semanticscholar.org/paper/Natural-History-and-Treatment-Trends-in-Pancreatic-Pokrzywa-Abbott/6e151c9bf215a5fdb310fe7c056769f7bf0962ab


Back to top


Gallbladder


- Importance of routine histopathological examination of a gallbladder surgical specimen: Unexpected gallbladder cancer

Journal of cancer research and therapeutics 2018 11;14(6):1325-1329

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30488851

Introduction: Cholecystectomy performed for benign diseases of the gallbladder is important for the diagnosis of gallbladder cancer. This is done by pathological examination of the removed specimens for patients with no detected or suspected complications before surgery. Although some centers undertake selective approaches for histopathological examination of gallbladder specimens, many centers perform this examination routinely. In our study, we investigated results of pathological examinations carried out on cholecystectomy specimens, in respect to unexpected cases of gallbladder cancer. Methods: We reviewed cholecystectomy cases performed for benign diseases of gallbladder from January 2012 to February 2016 by investigating pathological specimens from the gallbladder. We evaluated demographical properties and their association with the pathological diagnosis and frequency of unexpected gallbladder cancer cases. We reported additional treatment and survival information of the malignancy cases after surgery. Results: We reviewed 1294 cases of cholecystectomy, and the mean patient age was 47.5 ± 14.3 years. The most frequent diagnosis was chronic cholecystitis (92.3%), and it was more prevalent among younger patients and female sex (P < 0.0001). Five patients (0.4%) were determined to have gallbladder cancer, and the mean age of these cases was 65.6 ± 18.2 years. Two cases were Stage 2, two cases were Stage 3B, and one case was Stage 3A. There was no T1 or Tis tumor. Conclusion: Routine histopathological examination of gallbladder is significant with respect to the determination of additional interventions at the postoperative period required for cancer cases coincidentally diagnosed.


  • Mixed neuroendocrine-non-neuroendocrine carcinoma of gallbladder: case report

https://wjso.biomedcentral.com/articles/10.1186/s12957-019-1598-4


IL-33 overexpression in gallbladder cancers associated with pancreatobiliary maljunction.

https://www.ncbi.nlm.nih.gov/pubmed/30882917

  • Prognostic Impact of Lymph Node Excision in T1 and T2 Gallbladder Cancer: a Population-Based and Propensity Score-Matched SEER Analysis.

https://www.ncbi.nlm.nih.gov/pubmed/30887297

  • Molecular Diagnosis of Gall Bladder Cancer

https://link.springer.com/chapter/10.1007/978-981-13-5877-7_2

  • The optimal number of lymph nodes to evaluate among patients undergoing surgery for gallbladder cancer: Correlating the number of nodes removed with survival in 6531 patients

https://onlinelibrary.wiley.com/doi/abs/10.1002/jso.25450


  • An unusual presentation of carcinoma in gallbladder.

https://www.ncbi.nlm.nih.gov/pubmed/30820233


  • Gallbladder Cancer Diagnosis, Surgical Management, and Adjuvant Therapies

https://www.surgical.theclinics.com/article/S0039-6109(18)30178-6/fulltext


  • Mucin 5B, carbonic anhydrase 9 and claudin 18 arepotential theranostic markers of gallbladder carcinoma

https://www.researchgate.net/profile/Jaime_Espinoza7/publication/329375280_MUC5B_CA9_and_CLDN18_are_potential_theranostic_markers_of_gallbladder_carcinoma/links/5c505e29458515a4c74815ef/MUC5B-CA9-and-CLDN18-are-potential-theranostic-markers-of-gallbladder-carcinoma.pdf


  • Uncommon Intraluminal Tumors of the Gallbladder and Biliary Tract: Spectrum of Imaging Appearances

https://pubs.rsna.org/doi/abs/10.1148/rg.2019180164


  • Neuroendocrine Carcinoma and Intracystic Papillary Neoplasm: A Rare Association in the Gallbladder

https://www.karger.com/Article/FullText/495523


  • Positive cystic duct margin at index cholecystectomy in incidental gallbladder cancer is an important negative prognosticator

https://www.sciencedirect.com/science/article/pii/S0748798319300368


  • Fine-needle aspiration cytology of gallbladder with an attempt of cytomorphological classification

http://www.cytojournal.com/article.asp?issn=1742-6413;year=2019;volume=16;issue=1;spage=1;epage=1;aulast=Chandra


  • PIM1 kinase promotes gallbladder cancer cell proliferation via inhibition of proline-rich Akt substrate of 40 kDa (PRAS40)

https://link.springer.com/article/10.1007/s12079-018-00503-5


  • MUC5B, CA9 and CLDN18 are potential theranostic markers of gallbladder carcinoma

https://onlinelibrary.wiley.com/doi/10.1111/his.13797


  • Optimal Surgical Treatment in Patients with T1b Gallbladder Cancer: An International Multicenter Study

https://onlinelibrary.wiley.com/doi/abs/10.1002/jhbp.593


  • Gallbladder Papilloma in a Child Unmasking Metachromatic Leukodystrophy: A Case Report With Review of Literature

https://www.tandfonline.com/doi/abs/10.1080/15513815.2019.1588442?journalCode=ipdp20


Back to top


Ampulla of Vater


  • Mutational Landscape in Resected PeriampullaryAdenocarcinoma: Relationship With Morphologyand Clinical Outcome

https://ascopubs.org/doi/pdfdirect/10.1200/PO.18.00323


- [Combined application of immunohistochemical markers to identify pathologic subtypes of ampullary carcinoma and its clinical significance]

Zhonghua bing li xue za zhi = Chinese journal of pathology 2019 Feb;48(2):92-97

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30695858

Objective: To investigate the expression of immunomarkers CK7, CK20, CK17, CDX2, MUC1 and MUC2 in primary adenocarcinoma of the ampulla of Vater, to explore the role of these markers in the histopathologic subclassification of ampullary carcinoma; and to provide biologic basis for precision treatment of patients with different types of ampullary carcinoma. Methods: Forty-two cases of primary ampullary carcinoma were collected at Peking University People’s Hospital, from 2012 to 2018 year. There were 22 males and 20 females. Aged range 42 to 88 years old, with mean aged (62±11) years. Among the patients, 6 was high differentiation, 19 median differentiation, and 17 low differentiation. Immunohistochemical studies on the expression of CK7, CK20, CK17, CDX2, MUC1 and MUC2 were performed in 42 cases of primary ampullary carcinoma. The relationship between different ampullary carcinoma subtypes and clinicopathologic survival data was analyzed using SPSS 16.0 statistical software. Results: Three histopathologic subtypes were observed. Among 42 cases, 8(19.0%)were classified as intestinal subtype, which showed a positive expression rate of 8/8 for both CK20 and CDX2, and 5/8 for MUC2. Both CK7 and CK17 were weakly expressed in one case (1/8). No expression was observed for MUC1 in this subtype. Twenty-two (52.4%,22/42) cases were classified as pancreaticobiliary subtype, which showed a positive expression rate of 100.0%(22/22) for both CK7 and MUC1, and 90.9% (20/22) for CK17. No expression was observed for CK20, CDX2 and MUC2.The remaining 12 (28.6%) cases were classified as mixed subtype, which showed variable expression patterns. The expression frequencies of these 6 immunomarkers in different subtypes of ampullary carcinoma did not correlate with various clinicopathologic factors such as patient gender and age, tumor size, histologic differentiation, pancreatic and bile duct invasion, or the depth of duodenal invasion. However, stage Ⅲ+Ⅳ diseases were more commonly seen in pancreaticobiliary type (63.6%,14/22) than intestinal type (2/8) and mixed type (3/9; χ(2)=6.508, P=0.039). Follow-up data showed a trend of better survival rate for patients with intestinal subtype than those with mixed and pancreaticobiliary subtypes. Conclusions: Ampullary carcinoma can be subclassified into three different subtypes using a panel of six immunomarkers, especially for the identification of subtypes of poorly differentiated carcinoma. CK7, CK17 and MUC1 are major markers of pancreaticobiliary subtype, whereas CK20, CDX2 and MUC2 are useful markers for intestinal subtype. The mixed subtype variably expresses these markers. The prognosis of patients with intestinal subtype appears better than that of pancreaticobiliary and mixed subtypes. Accurate subtyping of ampullary carcinoma is clinically important to patient management and prognosis assessment.


Back to top



Adenosquamous carcinoma of the papilla of Vater: A phenotypic heterogeneity characterized by a common molecular landscape.

https://www.ncbi.nlm.nih.gov/pubmed/30417956



  • Can we classify ampullary tumours better? Clinical, pathological and molecular features. Results of an AGEO study

https://www.nature.com/articles/s41416-019-0415-8


  • Peri-Ampullary Metastasis From Endometrial Adenocarcinoma: A Rare Etiology of Obstructive Jaundice

https://www.gastrores.org/index.php/Gastrores/article/view/1129/1159


  • The Prognostic Relevance of the New 8th Edition of the Union for International Cancer Control Classification of TNM Staging for Ampulla of Vater Carcinoma

https://link.springer.com/article/10.1245/s10434-019-07238-6


  • Staging for Ampullary Carcinoma: Is Less Actually More?

https://link.springer.com/article/10.1245/s10434-019-07241-x


- Gastric-type adenocarcinoma of the duodenum arising from Brunner glands

Pathology international 2019 03;69(3):177-179

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30694586


- The Role of Log Odds of Positive Lymph Nodes in Predicting the Survival after Resection for Ampullary Adenocarcinoma

Pathology oncology research : POR 2019 Jan;():

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30693420

Lymph node metastasis is a important factor on survival in ampullary adenocarcinoma. Log odds of positive lymph nodes (LODDS) is a novel prognostic indicator on lymph node status. We aimed to evaluate the prognostic impact of LODDS for the patients with ampullary adenocarcinoma who underwent R0 pancreaticoduodenectomy. The study includes 42 patients.. LODDS was calculated as “log (number of metastatic lymph nodes+0.5)/(number of total harvested nodes - metastatic lymph nodes+0.5)”. LODDS subgroups were created based on their LODDS value: LODDS1(LODDS≤ - 1.5), LODDS2(-1.5 < LODDS≤ - 1.0), LODDS3(-1.0 < LODDS≤ - 0.5), LODDS4(LODDS> - 0.5). The mean survival time was 72.7 ± 7.82 months. Survival rates for 1, 3 and 5 years were 93%, 65% and 45%, respectively. The mean LODDS value was -1.0466 ± 0.51. LODDS subgroups show strong correlation with Overall Survival(OS). The mean survival were 114.8, 81.8, 56.6 and 25.6 months in LODDS subgroups 1, 2, 3 and 4, respectively (Log-rank; p = 0.002), in addition LOODS values shows correlation with perineural invasion and micro vascular invasion (p = 0.015 and p = 0.001 respectively). Findings in our patient group support the hypothesis that LODDS subgroups correlate with OS, and that value of LODDS has considerable role in prediction of OS as well.


  • Clinical relevance of pancreatobiliary and intestinal subtypes of ampullary and duodenal adenocarcinoma: Pattern of recurrence, chemotherapy, and survival after pancreatoduodenectomy

https://www.sciencedirect.com/science/article/pii/S1424390319300201


  • The Role of Log Odds of Positive Lymph Nodes in Predicting the Survival after Resection for Ampullary Adenocarcinoma

https://link.springer.com/article/10.1007/s12253-019-00584-6


  • Ampullary cancer: Evaluation of somatic and germline genetic alterations and association with clinical outcomes

https://onlinelibrary.wiley.com/doi/abs/10.1002/cncr.31951


  • Adenosquamous carcinoma of the papilla of Vater: A phenotypic heterogeneity characterized by a common molecular landscape

https://onlinelibrary.wiley.com/doi/10.1111/pin.12731


  • Identification of ampullary carcinoma mixed subtype using a panel of six antibodies and its clinical significance

https://onlinelibrary.wiley.com/doi/abs/10.1002/jso.25311


  • Incidence and comparative outcomes of periampullary cancer: A population‐based analysis demonstrating improved outcomes and increased use of adjuvant therapy from 2004 to 2012

https://onlinelibrary.wiley.com/doi/abs/10.1002/jso.25336


  • Distinct immunological properties of the two histological subtypes of adenocarcinoma of the ampulla of Vater

https://link.springer.com/article/10.1007/s00262-018-02293-6


- Predictors of long-term survival after pancreaticoduodenectomy for peri-ampullary adenocarcinoma: A retrospective study of 5-year survivors

Hepatobiliary & pancreatic diseases international : HBPD INT 2018 Oct;17(5):443-449

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30126828

BACKGROUND: Pancreaticoduodenectomy (PD) is the standard curative treatment for periampullary tumors. The aim of this study is to report the incidence and predictors of long-term survival (≥ 5 years) after PD. METHODS: This study included patients who underwent PD for pathologically proven periampullary adenocarcinomas. Patients were divided into 2 groups: group (I) patients who survived less than 5 years and group (II) patients who survived ≥ 5 years. RESULTS: There were 47 (20.6%) long-term survivors (≥ 5 years) among 228 patients underwent PD for periampullary adenocarcinoma. Patients with ampullary adenocarcinoma represented 31 (66.0%) of the long-term survivors. Primary analysis showed that favourable factors for long-term survival include age < 60 years old, serum CEA < 5 ng/mL, serum CA 19-9 < 37 U/mL, non-cirrhotic liver, tumor size < 2 cm, site of primary tumor, postoperative pancreatic fistula, R0 resection, postoperative chemotherapy, and no recurrence. Multivariate analysis demonstrated that CA 19-9 < 37 U/mL [OR (95% CI) = 1.712 (1.248-2.348), P = 0.001], smaller tumor size [OR (95% CI )= 1.335 (1.032-1.726), P = 0.028] and Ro resection [OR (95% CI) = 3.098 (2.095-4.582), P < 0.001] were independent factors for survival ≥ 5 years. The prognosis was best for ampullary adenocarcinoma, for which the median survival was 54 months and 5-year survival rate was 39.0%, and the poorest was pancreatic head adenocarcinoma, for which the median survival was 27 months and 5-year survival rate was 7%. CONCLUSIONS: The majority of long-term survivors after PD for periampullary adenocarcinoma are patients with ampullary tumor. CA 19-9 < 37 U/mL, smaller tumor size, and R0 resection were found to be independent factors for long-term survival ≥ 5 years.


- Ectopic papilla of Vater in duodenum bulb: A hospital-based study

Medicine 2019 Feb;98(8):e14642

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30813203

The major papilla of Vater can be ectopically present in the stomach, pyloric canal, duodenal bulb, and third or fourth portion of the duodenum. In this study, we determined the clinical significance of ectopic papilla of Vater by endoscopic retrograde cholangiopancreatogram (ERCP).A retrospective study was conducted by reviewing the medical records of 6133 patients receiving ERCP from 1988 to 2011. The diagnosis was confirmed if both the common bile duct (CBD) and the main pancreatic duct (PD) drained into the same opening, either by ERCP or magnetic resonance cholangiopancreatography.Eight patients with major papilla of Vater in the duodenal bulb were identified among 6133 patients receiving ERCP from 1988 to 2011, with an incidence rate of 0.13%. The mean age was 67 years and patients were predominantly male. Duodenal bulb deformity was noted in all patients and three of them had shallow gastric and/or duodenal ulcers. Hook-shaped CBD configuration was seen only in half of our cases. Three patients with CBD stones were treated successfully after endoscopic sphincterotomy or papillary balloon dilation.Ectopic orifice of papilla is a rare finding of ERCP. Opacification of both the CBD and main PD from the same opening is an essential criterion for diagnosing an ectopic papilla of Vater in the duodenal bulb.


- Ampullary Cancer

The Surgical clinics of North America 2019 Apr;99(2):357-367

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30846039

Compared with other periampullary tumors, cancers of the ampulla of Vater are rare. These tumors tend to present earlier than their pancreatic and distal bile duct brethren. In addition to the hypothesis that they are also less biologically aggressive, ampullary cancers tend to have better survival than other types of periampullary cancers. The mortality from this disease remains high, and much can still be learned about ampullary cancers.


- Recurrence patterns after pancreaticoduodenectomy for ampullary cancer

Journal of hepato-biliary-pancreatic sciences 2019 May;26(5):179-186

PubMed: https://www.ncbi.nlm.nih.gov/pubmed/?term=30849209

BACKGROUND: Few studies of the oncological outcomes of ampullary cancer have addressed recurrence, and many treatment-related issues remain unresolved. This study evaluated optimal surgical treatment strategies based on recurrence patterns after pancreaticoduodenectomy (PD) for ampullary cancer. METHODS: Two hundred and fifty-nine patients who underwent PD with R0 resection for ampullary cancer from January 2000 to June 2012 were included. Generally, lymph node (LN) dissection extended to the right superior mesenteric artery (SMA). Recurrence was defined based on imaging studies. The first detected recurrence sites and patterns were analyzed. RESULTS: During a mean follow-up of 51.3 months, recurrence occurred in 89 (34.4%) cases, most commonly in the liver. Poor differentiation, advanced T stage, and LN metastasis were identified as risk factors for recurrence. Locoregional and systemic recurrences occurred alone or simultaneously in 20.2%, 73.0%, and 6.7% of patients, respectively. Locoregional and systemic recurrences tended to occur in early- and advanced-stage cases, respectively. A nodal-type recurrence around mesenteric vessels was the most common locoregional recurrence pattern, and 58.8% (10/17) were located left of the SMA. CONCLUSION: As nodal-type metastasis around the mesenteric vessels was the dominant recurrence pattern, careful LN dissection around the SMA should be considered for early and advanced ampullary cancers.


  • [Histogenesis of duodenal non-ampullary tumor-like lesions and tumors].

https://www.ncbi.nlm.nih.gov/pubmed/29459559


Back to top


Neuroendocrine


  • Ki67 quantitative interpretation: Insights using image analysis

http://www.jpathinformatics.org/article.asp?issn=2153-3539;year=2019;volume=10;issue=1;spage=8;epage=8;aulast=Volynskaya


Back to top



  • The landscape of molecular alterations in pancreatic and small intestinal neuroendocrine tumours Le paysage des altérations moléculaires dans les tumeurs neuroendocrines gastro-entéro-pancréatiques

https://www.sciencedirect.com/science/article/pii/S0003426619300629



  • Patient characteristics and clinical outcomes following initial surgical intervention for MEN1 associated pancreatic neuroendocrine tumours: A systematic review and exploratory meta-analysis of the literature.

https://www.ncbi.nlm.nih.gov/pubmed/30894303


  • Systematic review of current prognostication systems for pancreatic neuroendocrine neoplasms

https://www.surgjournal.com/article/S0039-6060(18)30747-5/fulltext


  • Surgery for Pancreatic Neuroendocrine Tumor G3 and Carcinoma G3 Should be Considered Separately.

https://www.ncbi.nlm.nih.gov/pubmed/30863939


  • Reply to ‘Time for a change and to adopt a novel molecular genomic approach in NETs’

https://www.nature.com/articles/s41571-019-0186-4


  • Intertumor heterogeneity in 60 pancreatic neuroendocrine tumors associated with multiple endocrine neoplasia type 1

https://ojrd.biomedcentral.com/articles/10.1186/s13023-019-1034-4


  • RABL6Ainhibits tumor-suppressive PP2A/AKTsignaling to drivepancreatic neuroendocrine tumor growth

https://dm5migu4zj3pb.cloudfront.net/manuscripts/123000/123049/JCI123049.v1.pdf


  • Tumor-Infiltrating NETs Predict Postsurgical Survival in Patients with Pancreatic Ductal Adenocarcinoma

https://link.springer.com/article/10.1245%2Fs10434-018-6941-4


  • Interaction of race and pathology for neuroendocrine tumors: Epidemiology, natural history, or racial disparity?

https://www.researchgate.net/publication/330804310_Interaction_of_race_and_pathology_for_neuroendocrine_tumors_Epidemiology_natural_history_or_racial_disparity


  • Duodenal neuroendocrine tumors: Somewhere between the pancreas and small bowel?

https://www.researchgate.net/publication/330805018_Duodenal_neuroendocrine_tumors_Somewhere_between_the_pancreas_and_small_bowel


  • The Size of Well Differentiated Pancreatic Neuroendocrine Tumors Correlates with Ki67 Proliferative Index and is not Associated with Age

https://www.researchgate.net/publication/330595215_The_Size_of_Well_Differentiated_Pancreatic_Neuroendocrine_Tumors_Correlates_with_Ki67_Proliferative_Index_and_is_not_Associated_with_Age


  • Role of Tumor Associated Macrophages in the Clinical Course of Pancreatic Neuroendocrine Tumors (PanNETs)

http://clincancerres.aacrjournals.org/content/early/2019/01/19/1078-0432.CCR-18-1401


  • Genetics and Epigenetics of Gastroenteropancreatic Neuroendocrine Neoplasms

https://academic.oup.com/edrv/advance-article-abstract/doi/10.1210/er.2018-00160/5289720


  • Tumor growth rate as a metric of progression, response, and prognosis in pancreatic and intestinal neuroendocrine tumors

https://bmccancer.biomedcentral.com/articles/10.1186/s12885-018-5257-x


  • What Is New in the 2017 World Health Organization Classification and 8th American Joint Committee on Cancer Staging System for Pancreatic Neuroendocrine Neoplasms?

https://www.researchgate.net/publication/330070043_What_Is_New_in_the_2017_World_Health_Organization_Classification_and_8th_American_Joint_Committee_on_Cancer_Staging_System_for_Pancreatic_Neuroendocrine_Neoplasms

https://www.kjronline.org/DOIx.php?id=10.3348/kjr.2018.0040


  • Systematic review of current prognostication systems for pancreatic neuroendocrine neoplasms

https://www.sciencedirect.com/science/article/pii/S0039606018307475


  • Serum chromogranin A for the diagnosis of gastroenteropancreatic neuroendocrine neoplasms and its association with tumour expression

https://www.spandidos-publications.com/10.3892/ol.2018.9795


  • Endoscopic Ultrasound Assessment of Pancreatic Duct Diameter Predicts Neuroendocrine Tumors and Other Pancreas Masses

https://journals.lww.com/pancreasjournal/Abstract/2019/01000/Endoscopic_Ultrasound_Assessment_of_Pancreatic.9.aspx


  • The Molecular and Clinical Landscape of Pancreatic Neuroendocrine Tumors

https://journals.lww.com/pancreasjournal/Abstract/2019/01000/The_Molecular_and_Clinical_Landscape_of_Pancreatic.2.aspx


  • Systematic review of current prognostication systems for pancreatic neuroendocrine neoplasms

https://www.sciencedirect.com/science/article/pii/S0039606018307475


  • Regional differences in gallbladder cancer pathogenesis: Insights from a multi-institutional comparison of tumor mutations: Locality of Gallbladder Tumor Mutations

https://www.researchgate.net/publication/328947053_Regional_differences_in_gallbladder_cancer_pathogenesis_Insights_from_a_multi-institutional_comparison_of_tumor_mutations_Locality_of_Gallbladder_Tumor_Mutations


  • Intracholecystic papillary-tubular neoplasm of the gallbladder originating in the cystic duct with extensive intraepithelial progress in the common bile duct

https://link.springer.com/article/10.1007/s12328-018-0927-4


  • Distribution of dysplasia and cancer in the gallbladder: an analysis from a high cancer-risk population

https://www.sciencedirect.com/science/article/pii/S004681771830282X?dgcid=raven_sd_via_email


  • National Failure of Surgical Staging for T1b Gallbladder Cancer

https://link.springer.com/article/10.1245/s10434-018-7064-7


  • A common classification framework for neuroendocrine neoplasms: an International Agency for Research on Cancer (IARC) and World Health Organization (WHO) expert consensus proposal

https://www.nature.com/articles/s41379-018-0110-y


  • Insulinoma-associated protein 1 immunostaining on cytology specimens: an institutional experience

https://www.sciencedirect.com/science/article/pii/S0046817718304350


  • ATRX loss is an independent predictor of poor survival in pancreatic neuroendocrine tumors

https://www.sciencedirect.com/science/article/pii/S0046817718303009


  • Neoplasms of the Neuroendocrine Pancreas An Update in the Classification, Definition, and Molecular Genetic Advances

https://journals.lww.com/anatomicpathology/Abstract/2019/01000/Neoplasms_of_the_Neuroendocrine_Pancreas___An.2.aspx


  • Patterns of recurrence after resection for pancreatic neuroendocrine tumors: who, when, and where?

link


  • Touch imprint cytology on endoscopic ultrasound fine‐needle biopsy provides comparable sample quality and diagnostic yield to standard eus‐fna specimens in the evaluation of solid pancreatic lesions

https://onlinelibrary.wiley.com/doi/abs/10.1111/cyt.12662


  • Rationale and feasibility of mucin expression profiling by qRT-PCR as diagnostic biomarkers in cytology specimens of pancreatic cancer

link


  • Advances in the cytologic diagnosis of gastroenteropancreatic neuroendocrine neoplasms

https://onlinelibrary.wiley.com/doi/abs/10.1002/cncy.22073


  • Genetic assessment of recurrent pancreatic high-risk lesions in the remnant pancreas: Metachronous multifocal lesion or local recurrence?

https://www.sciencedirect.com/science/article/pii/S0039606018307402


  • ROBO2 is a stroma suppressor gene in the pancreas and acts via TGF-β signalling

https://www.researchgate.net/publication/329324877_ROBO2_is_a_stroma_suppressor_gene_in_the_pancreas_and_acts_via_TGF-b_signalling


  • Mutations in BRCA1, BRCA2, and PALB2, and a panel of 50 cancer-associated genes in pancreatic ductal adenocarcinoma

December 2018Scientific Reports 8(1)

DOI: 10.1038/s41598-018-26526-x

https://www.researchgate.net/publication/325368244_Mutations_in_BRCA1_BRCA2_and_PALB2_and_a_panel_of_50_cancer-associated_genes_in_pancreatic_ductal_adenocarcinoma


  • Coordinately targeting cell cycle checkpoint functions in integrated models of pancreatic cancer

http://clincancerres.aacrjournals.org/content/early/2018/12/11/1078-0432.CCR-18-1620


  • miRNA and Gene Expression in Pancreatic Ductal Adenocarcinoma

https://www.sciencedirect.com/science/article/pii/S0002944018305571


  • Circulating Tumor Cells and Cell-Free DNA in Pancreatic Ductal Adenocarcinoma

https://www.sciencedirect.com/science/article/pii/S0002944017311811


  • GPER is a mechanoregulator of pancreatic stellate cells and the tumor microenvironment

http://embor.embopress.org/content/early/2018/12/06/embr.201846556


  • Genetic alterations analysis in prognostic stratified groups identified TP53 and ARID1A as poor clinical performance markers in intrahepatic cholangiocarcinoma

December 2018Scientific Reports 8(1)

DOI: 10.1038/s41598-018-25669-1

https://www.researchgate.net/publication/325020651_Genetic_alterations_analysis_in_prognostic_stratified_groups_identified_TP53_and_ARID1A_as_poor_clinical_performance_markers_in_intrahepatic_cholangiocarcinoma


  • KRAS, NRAS and BRAF analysis of ampullary adenocarcinoma classified using CK7, CK20, MUC1 and MUC2

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6219964/

  • Mass Spectrometry-Based Comprehensive Analysis of Pancreatic Cyst Fluids

https://www.hindawi.com/journals/bmri/2018/7169595/


  • A “Clearer” View of Pancreatic Pathology A Review of Tissue Clearing and Advanced Microscopy Techniques

https://journals.lww.com/anatomicpathology/Abstract/2019/01000/A__Clearer__View_of_Pancreatic_Pathology___A.3.aspx


  • Pancreatic Ductal Adenocarcinoma: Recent Updates

https://www.sciencedirect.com/science/article/pii/S0002944018308551


  • German National Case Collection for familial pancreatic Cancer (FaPaCa) - acceptance and psychological aspects of a pancreatic cancer screening program

https://hccpjournal.biomedcentral.com/articles/10.1186/s13053-018-0100-6


  • Recent treatment patterns and survival outcomes in pancreatic cancer according to clinical stage based on single-center large-cohort data

https://synapse.koreamed.org/search.php?where=aview&id=10.14701/ahbps.2018.22.4.386&code=2110AHBPS&vmode=FULL


  • A systematic assessment of statistics, risk factors, and underlying features involved in pancreatic cancer

https://www.sciencedirect.com/science/article/pii/S1877782118305101


  • PANCREATIC CANCER IN BRAZIL: MORTALITY TRENDS AND PROJECTIONS UNTIL 2029

http://www.scielo.br/scielo.php?pid=S0004-28032018002300230&script=sci_arttext


  • Results of First-round of Surveillance in Individuals at High-risk of Pancreatic Cancer from the AISP (Italian Association for the Study of the Pancreas) Registry

https://www.nature.com/articles/s41395-018-0414-z


  • Familial Pancreatic Ductal Adenocarcinoma

https://www.sciencedirect.com/science/article/pii/S0002944018302062


  • Current Approaches to Pancreatic Cancer Screening

https://www.sciencedirect.com/science/article/pii/S0002944018302529


  • The impact of the immune microenvironment in patients with GEP-NETs.

http://ascopubs.org/doi/abs/10.1200/JCO.2019.37.4_suppl.267


  • Surgery for Pancreatic Neuroendocrine Tumor G3 and Carcinoma G3 Should be Considered Separately

https://link.springer.com/article/10.1245/s10434-019-07252-8


  • A simple and practical index predicting the prognoses of the patients with well-differentiated pancreatic neuroendocrine neoplasms

https://link.springer.com/article/10.1007/s00535-019-01570-0


LS0tCnRpdGxlOiAiUGFuY3JlYXRvYmlsaWFyeSBQYXRob2xvZ3kgU29jaWV0eSBKb3VybmFsIFdhdGNoIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogCiAgICBjb2RlX2ZvbGRpbmc6IG5vbmUKICAgIGZpZ19jYXB0aW9uOiB5ZXMKICAgIGhpZ2hsaWdodDogbnVsbAogICAgdGhlbWU6IHBhcGVyCiAgcGRmX2RvY3VtZW50OgogICAga2VlcF90ZXg6IHllcwogICAgbGF0ZXhfZW5naW5lOiB4ZWxhdGV4CiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiA1CiAgaHRtbF9kb2N1bWVudDoKICAgIGRmX3ByaW50OiBrYWJsZQogICAgaGlnaGxpZ2h0OiBudWxsCiAgICBrZWVwX21kOiB5ZXMKICB3b3JkX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKZGF0ZTogIkxhc3QgVXBkYXRlIG9uIGByIGZvcm1hdChTeXMuRGF0ZSgpKWAiCnN1YnRpdGxlOiAiQXByaWwgTWF5IDIwMTkiCi0tLQoKYGBge3IgZ2xvYmFsX29wdGlvbnMsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChjYWNoZSA9IFRSVUUpCmBgYAoKCmBgYHtyIGxpYnJhcnksIGluY2x1ZGU9RkFMU0V9CnN1cHByZXNzUGFja2FnZVN0YXJ0dXBNZXNzYWdlcyhsaWJyYXJ5KHRpZHl2ZXJzZSkpCnN1cHByZXNzUGFja2FnZVN0YXJ0dXBNZXNzYWdlcyhsaWJyYXJ5KHJlYWR4bCkpCmBgYAoKCmBgYHtyIGRhdGEgbG9hZCwgaW5jbHVkZT1GQUxTRX0KYXJ0aWNsZXMgPC0gcmVhZFJEUygiYXJ0aWNsZXMucmRzIikKYGBgCgoKCjwhLS0gT3BlbiBhbGwgbGlua3MgaW4gbmV3IHRhYi0tPiAgCjxiYXNlIHRhcmdldD0iX2JsYW5rIi8+ICAKCgo8IS0tIGh0dHBzOi8vd3d3LmFkZHRoaXMuY29tL2FjYWRlbXkvc2V0dGluZy10aGUtdXJsLXRpdGxlLXRvLXNoYXJlLyAtLT4gIAoKPCEtLSBHbyB0byB3d3cuYWRkdGhpcy5jb20vZGFzaGJvYXJkIHRvIGN1c3RvbWl6ZSB5b3VyIHRvb2xzIEpvdXJuYWwgV2F0Y2ggMSBJbmxpbmUgc2hhcmUtLT4gIAo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvL3M3LmFkZHRoaXMuY29tL2pzLzMwMC9hZGR0aGlzX3dpZGdldC5qcyNwdWJpZD1yYS01YmMyNWI4MmQwYTljMThkIj4gIAo8L3NjcmlwdD4gCgoKPCEtLSBbIVtdKGZpZ3VyZXMvUEJQX2hlYWRlcl9sb2dvLmpwZyldKGh0dHA6Ly9wYnBhdGgub3JnLykgLS0+CgoKLS0tCgojIFBCUGF0aCBKb3VybmFsIFdhdGNoIEFydGljbGVzIHsudGFic2V0IC50YWJzZXQtZmFkZSAudGFic2V0LXBpbGxzfQoKCmBgYHtyIHN0cmluZ3MgLCBpbmNsdWRlPUZBTFNFfQpQdWJNZWRTdHJpbmcgPC0gIlB1Yk1lZDogaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvP3Rlcm09IgoKZG9pU3RyaW5nIDwtICJkb2k6IGh0dHBzOi8vZG9pLm9yZy8iCgpkaW1lbnNpb25TdHJpbmcxIDwtICI8c2NyaXB0IGFzeW5jPScnIGNoYXJzZXQ9J3V0Zi04JyBzcmM9J2h0dHBzOi8vYmFkZ2UuZGltZW5zaW9ucy5haS9iYWRnZS5qcyc+PC9zY3JpcHQ+IDxzcGFuIGNsYXNzPSdfX2RpbWVuc2lvbnNfYmFkZ2VfZW1iZWRfXycgZGF0YS1kb2k9JyIKCmRpbWVuc2lvblN0cmluZzIgPC0gIicgZGF0YS1zdHlsZT0nc21hbGxfY2lyY2xlJyBkYXRhLWhpZGUtemVyby1jaXRhdGlvbnM9J3RydWUnIGRhdGEtbGVnZW5kPSdhbHdheXMnPjwvc3Bhbj4iCgphbHRtZXRyaWNTdHJpbmcxIDwtIjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2h0dHBzOi8vZDFieGg4dWFzMW1udzcuY2xvdWRmcm9udC5uZXQvYXNzZXRzL2VtYmVkLmpzJz48L3NjcmlwdD4gPHNwYW4gY2xhc3M9J2FsdG1ldHJpYy1lbWJlZCcgZGF0YS1saW5rLXRhcmdldD0nX2JsYW5rJyBkYXRhLWJhZGdlLWRldGFpbHM9J3JpZ2h0JyBkYXRhLWJhZGdlLXR5cGU9J2RvbnV0JyBkYXRhLWRvaT0nIgoKYWx0bWV0cmljU3RyaW5nMiA8LSAiJyBkYXRhLWhpZGUtbm8tbWVudGlvbnM9J3RydWUnPjwvc3Bhbj4iCgphZGR0aGlzX1N0cmluZzEgPC0gIjxkaXYgY2xhc3M9J2FkZHRoaXNfaW5saW5lX3NoYXJlX3Rvb2xib3gnIGRhdGEtdXJsPSdwYnBhdGgub3JnL2N1cnJlbnQtam91cm5hbC13YXRjaC8nIGRhdGEtdGl0bGU9J1NlZSB0aGlzIGFic3RyYWN0IG9uICNQQlBhdGggI0pvdXJuYWxXYXRjaCA6ICIKCmFkZHRoaXNfU3RyaW5nMiA8LSAiJz48L2Rpdj4iCgpgYGAKCgoKLS0tCgoqKldlbGxjb21lIHRvIHRoZSBQQlBhdGggSm91cm5hbCBXYXRjaCEqKiAKClRoaXMgYmktbW9udGhseSBqb3VybmFsIHdhdGNoIGZlYXR1cmVzIGV4Y2l0aW5nIHJlY2VudGx5IHB1Ymxpc2hlZCBwYW5jcmVhcyBhbmQgYmlsaWFyeSBwYXRob2xvZ3kgYXJ0aWNsZXMgdGhhdCB3aWxsIHByb3ZpZGUgdXAgdG8gZGF0ZSBtZWRpY2FsIGtub3dsZWRnZSBpbiBvdXIgZmllbGQuIFRoZXNlIGFydGljbGVzIHdpbGwgYmUgc2hvd2Nhc2VkIGluIHNldmVyYWwgY29udmVuaWVudCBjYXRlZ29yaWVzLCBpbmNsdWRpbmcgc3VyZ2ljYWwgcGF0aG9sb2d5LCBjeXRvcGF0aG9sb2d5LCBhbmQgbW9sZWN1bGFyIHBhdGhvbG9neSBhbW9uZyBvdGhlcnMuIFRoZSBhcnRpY2xlcyBpbiBlYWNoIGNhdGVnb3J5IGFyZSBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyLiBTZWUgdGhlIGxpc3Qgb2Ygam91cm5hbHMgd2Ugc2VhcmNoIHJlZ3VsYXJseSBbaGVyZV0oaHR0cDovL3BicGF0aC5vcmcvcGJwYXRoLWpvdXJuYWwtd2F0Y2gvKS4gUHJldmlvdXMgbW9udGhz4oCZIGlzc3VlcyBtYXkgYmUgZm91bmQgaW4gb3VyICpbYXJjaGl2ZV0oaHR0cDovL3BicGF0aC5vcmcvam91cm5hbC13YXRjaC1hcmNoaXZlLykqIGFuZCB5b3UgbWF5IHNlZSBbcHJlcGFyYXRpb24gb2YgdXBjb21pbmcgaXNzdWUgaGVyZV0oaHR0cDovL3BicGF0aC5vcmcvam91cm5hbC13YXRjaC11cGNvbWluZy1pc3N1ZS8pLiAgCgpXZSBlbmNvdXJhZ2UgbWVtYmVycyB0byBhY3RpdmVseSBwYXJ0aWNpcGF0ZSBieSByZWNvbW1lbmRpbmcgbmV3IGFydGljbGVzIGFuZCBwcm92aWRpbmcgZmVlZGJhY2sgdXNpbmcgdGhlIGZvcm1zIHByb3ZpZGVkIGJlbG93LiAgCgoqKldlIGhvcGUgdGhhdCB5b3Ugd2lsbCBlbmpveSB0aGUgbmV3IFBCUGF0aCBKb3VybmFsIFdhdGNoISoqICAKCi0tLQoKKipGZWVkYmFjayoqICAKClBsZWFzZSBzZW5kIHlvdXIgZmVlZGJhY2tzIHVzaW5nIHRoZSBmb3JtcyBiZWxvdzogIAoKW0dvb2dsZSBGZWVkYmFjayBGb3JtXShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9mb3Jtcy9kL2UvMUZBSXBRTFNlRDNaOUo2WTdlTW1peU0xMmZfU2ZBbUhVbHlrYjF6eFpjd082bGc3Y2ViR1lRSVEvdmlld2Zvcm0pICAKCgo8c2NyaXB0IGlkPSJkc3EtY291bnQtc2NyIiBzcmM9Ii8vcGJwYXRoLW9yZy5kaXNxdXMuY29tL2NvdW50LmpzIiBhc3luYz48L3NjcmlwdD4KPGRpdiBpZD0iZGlzcXVzX3RocmVhZCI+PC9kaXY+CjxzY3JpcHQ+CgovKioKKiAgUkVDT01NRU5ERUQgQ09ORklHVVJBVElPTiBWQVJJQUJMRVM6IEVESVQgQU5EIFVOQ09NTUVOVCBUSEUgU0VDVElPTiBCRUxPVyBUTyBJTlNFUlQgRFlOQU1JQyBWQUxVRVMgRlJPTSBZT1VSIFBMQVRGT1JNIE9SIENNUy4KKiAgTEVBUk4gV0hZIERFRklOSU5HIFRIRVNFIFZBUklBQkxFUyBJUyBJTVBPUlRBTlQ6IGh0dHBzOi8vZGlzcXVzLmNvbS9hZG1pbi91bml2ZXJzYWxjb2RlLyNjb25maWd1cmF0aW9uLXZhcmlhYmxlcyovCi8qCnZhciBkaXNxdXNfY29uZmlnID0gZnVuY3Rpb24gKCkgewp0aGlzLnBhZ2UudXJsID0gUEFHRV9VUkw7ICAvLyBSZXBsYWNlIFBBR0VfVVJMIHdpdGggeW91ciBwYWdlJ3MgY2Fub25pY2FsIFVSTCB2YXJpYWJsZQp0aGlzLnBhZ2UuaWRlbnRpZmllciA9IFBBR0VfSURFTlRJRklFUjsgLy8gUmVwbGFjZSBQQUdFX0lERU5USUZJRVIgd2l0aCB5b3VyIHBhZ2UncyB1bmlxdWUgaWRlbnRpZmllciB2YXJpYWJsZQp9OwoqLwooZnVuY3Rpb24oKSB7IC8vIERPTidUIEVESVQgQkVMT1cgVEhJUyBMSU5FCnZhciBkID0gZG9jdW1lbnQsIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwpzLnNyYyA9ICdodHRwczovL3BicGF0aC1vcmcuZGlzcXVzLmNvbS9lbWJlZC5qcyc7CnMuc2V0QXR0cmlidXRlKCdkYXRhLXRpbWVzdGFtcCcsICtuZXcgRGF0ZSgpKTsKKGQuaGVhZCB8fCBkLmJvZHkpLmFwcGVuZENoaWxkKHMpOwp9KSgpOwo8L3NjcmlwdD4KPG5vc2NyaXB0PlBsZWFzZSBlbmFibGUgSmF2YVNjcmlwdCB0byB2aWV3IHRoZSA8YSBocmVmPSJodHRwczovL2Rpc3F1cy5jb20vP3JlZl9ub3NjcmlwdCI+Y29tbWVudHMgcG93ZXJlZCBieSBEaXNxdXMuPC9hPjwvbm9zY3JpcHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCgotLS0KCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKIyMgU3VyZ2ljYWwgUGF0aG9sb2d5IHsudGFic2V0fQoKLS0tCgojIyMgUGFuY3JlYXMKCgotLS0KCiMjIyMgTW9ycGhvbG9neSwgRGlhZ25vc3RpY3MsIElIQwoKTW9ycGhvbG9neSwgRGlhZ25vc3RpY3MsIElIQwoKCmBgYHtyIFMgUGFuY3JlYXMgTW9ycGhvbG9neSBEaWFnbm9zdGljcyBJSEMsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCgotLS0KCmBgYHtyIDMwOTQxNjg3LCBpbmNsdWRlPUZBTFNFfQoKYXJ0aWNsZXMgPC0gcmVhZFJEUygnYXJ0aWNsZXMucmRzJykKCgpQTUlEXzMwOTQxNjg3IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTQxNjg3JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTQxNjg3IDwtIHBhc3RlMChQTUlEXzMwOTQxNjg3JGpvdXJuYWwsJyAnLCBQTUlEXzMwOTQxNjg3JHllYXIsICcgJywgUE1JRF8zMDk0MTY4NyRtb250aCwnOycsIFBNSURfMzA5NDE2ODckdm9sdW1lLCcoJywgUE1JRF8zMDk0MTY4NyRudW1iZXIsJyk6JywgUE1JRF8zMDk0MTY4NyRwYWdlcykKClB1Yk1lZF8zMDk0MTY4NyA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTQxNjg3JGVwcmludCkKCmRvaV8zMDk0MTY4NyA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTQxNjg3JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTQxNjg3IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTQxNjg3JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NDE2ODcgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NDE2ODckZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTQxNjg3IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NDE2ODckdGl0bGUgLCAiIFBNSUQ6IDMwOTQxNjg3ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgphcnRpY2xlcyA8LSBhcnRpY2xlcyAlPiUKCmFkZF9yb3coCgpBcnRpY2xlQ2l0YXRpb24gPSBQTUlEXzMwOTQxNjg3LApQTUlEID0gUE1JRF8zMDk0MTY4NyRlcHJpbnQsClRpdGxlID0gUE1JRF8zMDk0MTY4NyR0aXRsZSwKIyBBdXRob3IgPSBQTUlEXzMwOTQxNjg3JGF1dGhvciwKQWJzdHJhY3QgPSBQTUlEXzMwOTQxNjg3JGFic3RyYWN0LApKb3VybmFsID0gUE1JRF8zMDk0MTY4NyRqb3VybmFsLApZZWFyID0gUE1JRF8zMDk0MTY4NyR5ZWFyLApNb250aCA9IFBNSURfMzA5NDE2ODckbW9udGgsCiMgVm9sdW1lID0gUE1JRF8zMDk0MTY4NyR2b2x1bWUsCiMgTnVtYmVyID0gUE1JRF8zMDk0MTY4NyRudW1iZXIsCiMgUGFnZXMgPSBQTUlEXzMwOTQxNjg3JHBhZ2VzLApQdWJNZWRMaW5rID0gcGFzdGUwKCdodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8/dGVybT0nLCBQTUlEXzMwOTQxNjg3JGVwcmludCksCkRvaU51bWJlciA9IFBNSURfMzA5NDE2ODckZG9pLApEb2lMaW5rID0gcGFzdGUwKCdodHRwczovL2RvaS5vcmcvJywgUE1JRF8zMDk0MTY4NyRkb2kpLApMYW5ndWFnZSA9IFBNSURfMzA5NDE2ODckbGFuZ3VhZ2UsCklTU04gPSBQTUlEXzMwOTQxNjg3JGlzc24KKSAlPiUKCnVuaXF1ZSgpCgoKU3lzLnNsZWVwKDEpCgpzYXZlUkRTKGFydGljbGVzLCAnYXJ0aWNsZXMucmRzJykKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTQxNjg3JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NDE2ODdgKgoKYHIgUHViTWVkXzMwOTQxNjg3YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NDE2ODdgCgpgciBQTUlEXzMwOTQxNjg3JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NDE2ODdgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NDE2ODdgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk0MTY4N2AKCjwvZGV0YWlscz4KCgotLS0KCmBgYHtyIDMwOTczNDcyLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDk3MzQ3MiA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk3MzQ3MicsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk3MzQ3MiA8LSBwYXN0ZTAoUE1JRF8zMDk3MzQ3MiRqb3VybmFsLCcgJywgUE1JRF8zMDk3MzQ3MiR5ZWFyLCAnICcsIFBNSURfMzA5NzM0NzIkbW9udGgsJzsnLCBQTUlEXzMwOTczNDcyJHZvbHVtZSwnKCcsIFBNSURfMzA5NzM0NzIkbnVtYmVyLCcpOicsIFBNSURfMzA5NzM0NzIkcGFnZXMpCgpQdWJNZWRfMzA5NzM0NzIgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk3MzQ3MiRlcHJpbnQpCgpkb2lfMzA5NzM0NzIgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk3MzQ3MiRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk3MzQ3MiA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk3MzQ3MiRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTczNDcyIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTczNDcyJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk3MzQ3MiA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTczNDcyJHRpdGxlICwgIiBQTUlEOiAzMDk3MzQ3MiAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8zMDk3MzQ3MiwKUE1JRCA9IFBNSURfMzA5NzM0NzIkZXByaW50LApUaXRsZSA9IFBNSURfMzA5NzM0NzIkdGl0bGUsCiMgQXV0aG9yID0gUE1JRF8zMDk3MzQ3MiRhdXRob3IsCiMgQWJzdHJhY3QgPSBQTUlEXzMwOTczNDcyJGFic3RyYWN0LApKb3VybmFsID0gUE1JRF8zMDk3MzQ3MiRqb3VybmFsLApZZWFyID0gUE1JRF8zMDk3MzQ3MiR5ZWFyLApNb250aCA9IFBNSURfMzA5NzM0NzIkbW9udGgsClZvbHVtZSA9IFBNSURfMzA5NzM0NzIkdm9sdW1lLApOdW1iZXIgPSBQTUlEXzMwOTczNDcyJG51bWJlciwKUGFnZXMgPSBQTUlEXzMwOTczNDcyJHBhZ2VzLApQdWJNZWRMaW5rID0gcGFzdGUwKCdodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8/dGVybT0nLCBQTUlEXzMwOTczNDcyJGVwcmludCksCkRvaU51bWJlciA9IFBNSURfMzA5NzM0NzIkZG9pLApEb2lMaW5rID0gcGFzdGUwKCdodHRwczovL2RvaS5vcmcvJywgUE1JRF8zMDk3MzQ3MiRkb2kpLApMYW5ndWFnZSA9IFBNSURfMzA5NzM0NzIkbGFuZ3VhZ2UsCklTU04gPSBQTUlEXzMwOTczNDcyJGlzc24KKSAlPiUKCnVuaXF1ZSgpCgoKU3lzLnNsZWVwKDEpCgpzYXZlUkRTKGFydGljbGVzLCAnYXJ0aWNsZXMucmRzJykKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTczNDcyJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NzM0NzJgKgoKYHIgUHViTWVkXzMwOTczNDcyYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NzM0NzJgCgpgciBQTUlEXzMwOTczNDcyJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NzM0NzJgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NzM0NzJgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk3MzQ3MmAKCjwvZGV0YWlscz4KCgotLS0KCmBgYHtyIDMwOTczNDY5LCBpbmNsdWRlPUZBTFNFfQoKYXJ0aWNsZXMgPC0gcmVhZFJEUygnYXJ0aWNsZXMucmRzJykKCgpQTUlEXzMwOTczNDY5IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTczNDY5JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTczNDY5IDwtIHBhc3RlMChQTUlEXzMwOTczNDY5JGpvdXJuYWwsJyAnLCBQTUlEXzMwOTczNDY5JHllYXIsICcgJywgUE1JRF8zMDk3MzQ2OSRtb250aCwnOycsIFBNSURfMzA5NzM0Njkkdm9sdW1lLCcoJywgUE1JRF8zMDk3MzQ2OSRudW1iZXIsJyk6JywgUE1JRF8zMDk3MzQ2OSRwYWdlcykKClB1Yk1lZF8zMDk3MzQ2OSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTczNDY5JGVwcmludCkKCmRvaV8zMDk3MzQ2OSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTczNDY5JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTczNDY5IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTczNDY5JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NzM0NjkgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NzM0NjkkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTczNDY5IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NzM0NjkkdGl0bGUgLCAiIFBNSUQ6IDMwOTczNDY5ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgphcnRpY2xlcyA8LSBhcnRpY2xlcyAlPiUKCmFkZF9yb3coCgpBcnRpY2xlQ2l0YXRpb24gPSBQTUlEXzMwOTczNDY5LApQTUlEID0gUE1JRF8zMDk3MzQ2OSRlcHJpbnQsClRpdGxlID0gUE1JRF8zMDk3MzQ2OSR0aXRsZSwKIyBBdXRob3IgPSBQTUlEXzMwOTczNDY5JGF1dGhvciwKQWJzdHJhY3QgPSBQTUlEXzMwOTczNDY5JGFic3RyYWN0LApKb3VybmFsID0gUE1JRF8zMDk3MzQ2OSRqb3VybmFsLApZZWFyID0gUE1JRF8zMDk3MzQ2OSR5ZWFyLApNb250aCA9IFBNSURfMzA5NzM0NjkkbW9udGgsCiMgVm9sdW1lID0gUE1JRF8zMDk3MzQ2OSR2b2x1bWUsCiMgTnVtYmVyID0gUE1JRF8zMDk3MzQ2OSRudW1iZXIsCiMgUGFnZXMgPSBQTUlEXzMwOTczNDY5JHBhZ2VzLApQdWJNZWRMaW5rID0gcGFzdGUwKCdodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8/dGVybT0nLCBQTUlEXzMwOTczNDY5JGVwcmludCksCkRvaU51bWJlciA9IFBNSURfMzA5NzM0NjkkZG9pLApEb2lMaW5rID0gcGFzdGUwKCdodHRwczovL2RvaS5vcmcvJywgUE1JRF8zMDk3MzQ2OSRkb2kpLApMYW5ndWFnZSA9IFBNSURfMzA5NzM0NjkkbGFuZ3VhZ2UsCklTU04gPSBQTUlEXzMwOTczNDY5JGlzc24KKSAlPiUKCnVuaXF1ZSgpCgoKU3lzLnNsZWVwKDEpCgpzYXZlUkRTKGFydGljbGVzLCAnYXJ0aWNsZXMucmRzJykKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTczNDY5JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NzM0NjlgKgoKYHIgUHViTWVkXzMwOTczNDY5YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NzM0NjlgCgpgciBQTUlEXzMwOTczNDY5JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NzM0NjlgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NzM0NjlgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk3MzQ2OWAKCjwvZGV0YWlscz4KCi0tLQoKCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgojIyMjIFN0YWdpbmcKClBhbmNyZWFzIFROTSBzdGFnaW5nLCBNYXJnaW5zLCBTdXJ2aXZhbAoKYGBge3IgUyBQYW5jcmVhcyBUTk0gc3RhZ2luZyBNYXJnaW5zIFN1cnZpdmFsLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgotLS0KCmBgYHtyIDMxMDE0MjY0LCBpbmNsdWRlPUZBTFNFfQoKYXJ0aWNsZXMgPC0gcmVhZFJEUygnYXJ0aWNsZXMucmRzJykKCgpQTUlEXzMxMDE0MjY0IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMxMDE0MjY0JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMxMDE0MjY0IDwtIHBhc3RlMChQTUlEXzMxMDE0MjY0JGpvdXJuYWwsJyAnLCBQTUlEXzMxMDE0MjY0JHllYXIsICcgJywgUE1JRF8zMTAxNDI2NCRtb250aCwnOycsIFBNSURfMzEwMTQyNjQkdm9sdW1lLCcoJywgUE1JRF8zMTAxNDI2NCRudW1iZXIsJyk6JywgUE1JRF8zMTAxNDI2NCRwYWdlcykKClB1Yk1lZF8zMTAxNDI2NCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMxMDE0MjY0JGVwcmludCkKCmRvaV8zMTAxNDI2NCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMxMDE0MjY0JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMxMDE0MjY0IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMxMDE0MjY0JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzEwMTQyNjQgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzEwMTQyNjQkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMxMDE0MjY0IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzEwMTQyNjQkdGl0bGUgLCAiIFBNSUQ6IDMxMDE0MjY0ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgphcnRpY2xlcyA8LSBhcnRpY2xlcyAlPiUKCmFkZF9yb3coCgpBcnRpY2xlQ2l0YXRpb24gPSBQTUlEXzMxMDE0MjY0LApQTUlEID0gUE1JRF8zMTAxNDI2NCRlcHJpbnQsClRpdGxlID0gUE1JRF8zMTAxNDI2NCR0aXRsZSwKIyBBdXRob3IgPSBQTUlEXzMxMDE0MjY0JGF1dGhvciwKQWJzdHJhY3QgPSBQTUlEXzMxMDE0MjY0JGFic3RyYWN0LApKb3VybmFsID0gUE1JRF8zMTAxNDI2NCRqb3VybmFsLApZZWFyID0gUE1JRF8zMTAxNDI2NCR5ZWFyLApNb250aCA9IFBNSURfMzEwMTQyNjQkbW9udGgsCiMgVm9sdW1lID0gUE1JRF8zMTAxNDI2NCR2b2x1bWUsCiMgTnVtYmVyID0gUE1JRF8zMTAxNDI2NCRudW1iZXIsCiMgUGFnZXMgPSBQTUlEXzMxMDE0MjY0JHBhZ2VzLApQdWJNZWRMaW5rID0gcGFzdGUwKCdodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8/dGVybT0nLCBQTUlEXzMxMDE0MjY0JGVwcmludCksCkRvaU51bWJlciA9IFBNSURfMzEwMTQyNjQkZG9pLApEb2lMaW5rID0gcGFzdGUwKCdodHRwczovL2RvaS5vcmcvJywgUE1JRF8zMTAxNDI2NCRkb2kpLApMYW5ndWFnZSA9IFBNSURfMzEwMTQyNjQkbGFuZ3VhZ2UsCklTU04gPSBQTUlEXzMxMDE0MjY0JGlzc24KKSAlPiUKCnVuaXF1ZSgpCgoKU3lzLnNsZWVwKDEpCgpzYXZlUkRTKGFydGljbGVzLCAnYXJ0aWNsZXMucmRzJykKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMxMDE0MjY0JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzEwMTQyNjRgKgoKYHIgUHViTWVkXzMxMDE0MjY0YAoKYHIgYWRkdGhpc19pbmxpbmVfMzEwMTQyNjRgCgpgciBQTUlEXzMxMDE0MjY0JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzEwMTQyNjRgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzEwMTQyNjRgCgpgciBhbHRtZXRyaWNCYWRnZV8zMTAxNDI2NGAKCjwvZGV0YWlscz4KCi0tLQoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgojIyMjIFByZW5lb3BsYXN0aWMgYW5kIFByZWludmFzaXZlIExlc2lvbnMgCgpQcmVuZW9wbGFzdGljIGFuZCBQcmVpbnZhc2l2ZSBMZXNpb25zLCBQYW5JTiwgSVBNTiwgTUNOLCBJQ1BOCgpgYGB7ciBTIFBhbmNyZWFzIFByZW5lb3BsYXN0aWMgYW5kIFByZWludmFzaXZlIExlc2lvbnMgSVBNTiwgTUNOLCBJVFBOLCAgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKCgoKLS0tCgpgYGB7ciAzMDk0NjI0MywgaW5jbHVkZT1GQUxTRX0KCmFydGljbGVzIDwtIHJlYWRSRFMoJ2FydGljbGVzLnJkcycpCgoKUE1JRF8zMDk0NjI0MyA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk0NjI0MycsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk0NjI0MyA8LSBwYXN0ZTAoUE1JRF8zMDk0NjI0MyRqb3VybmFsLCcgJywgUE1JRF8zMDk0NjI0MyR5ZWFyLCAnICcsIFBNSURfMzA5NDYyNDMkbW9udGgsJzsnLCBQTUlEXzMwOTQ2MjQzJHZvbHVtZSwnKCcsIFBNSURfMzA5NDYyNDMkbnVtYmVyLCcpOicsIFBNSURfMzA5NDYyNDMkcGFnZXMpCgpQdWJNZWRfMzA5NDYyNDMgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk0NjI0MyRlcHJpbnQpCgpkb2lfMzA5NDYyNDMgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk0NjI0MyRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk0NjI0MyA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk0NjI0MyRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTQ2MjQzIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTQ2MjQzJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk0NjI0MyA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTQ2MjQzJHRpdGxlICwgIiBQTUlEOiAzMDk0NjI0MyAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8zMDk0NjI0MywKUE1JRCA9IFBNSURfMzA5NDYyNDMkZXByaW50LApUaXRsZSA9IFBNSURfMzA5NDYyNDMkdGl0bGUsCiMgQXV0aG9yID0gUE1JRF8zMDk0NjI0MyRhdXRob3IsCkFic3RyYWN0ID0gUE1JRF8zMDk0NjI0MyRhYnN0cmFjdCwKSm91cm5hbCA9IFBNSURfMzA5NDYyNDMkam91cm5hbCwKWWVhciA9IFBNSURfMzA5NDYyNDMkeWVhciwKTW9udGggPSBQTUlEXzMwOTQ2MjQzJG1vbnRoLAojIFZvbHVtZSA9IFBNSURfMzA5NDYyNDMkdm9sdW1lLAojIE51bWJlciA9IFBNSURfMzA5NDYyNDMkbnVtYmVyLAojIFBhZ2VzID0gUE1JRF8zMDk0NjI0MyRwYWdlcywKUHViTWVkTGluayA9IHBhc3RlMCgnaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvP3Rlcm09JywgUE1JRF8zMDk0NjI0MyRlcHJpbnQpLApEb2lOdW1iZXIgPSBQTUlEXzMwOTQ2MjQzJGRvaSwKRG9pTGluayA9IHBhc3RlMCgnaHR0cHM6Ly9kb2kub3JnLycsIFBNSURfMzA5NDYyNDMkZG9pKSwKTGFuZ3VhZ2UgPSBQTUlEXzMwOTQ2MjQzJGxhbmd1YWdlLApJU1NOID0gUE1JRF8zMDk0NjI0MyRpc3NuCikgJT4lCgp1bmlxdWUoKQoKClN5cy5zbGVlcCgxKQoKc2F2ZVJEUyhhcnRpY2xlcywgJ2FydGljbGVzLnJkcycpCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk0NjI0MyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTQ2MjQzYCoKCmByIFB1Yk1lZF8zMDk0NjI0M2AKCmByIGFkZHRoaXNfaW5saW5lXzMwOTQ2MjQzYAoKYHIgUE1JRF8zMDk0NjI0MyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTQ2MjQzYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTQ2MjQzYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5NDYyNDNgCgo8L2RldGFpbHM+CgoKCi0tLQoKYGBge3IgMzA4NzkxNDgsIGluY2x1ZGU9RkFMU0V9CgphcnRpY2xlcyA8LSByZWFkUkRTKCdhcnRpY2xlcy5yZHMnKQoKClBNSURfMzA4NzkxNDggPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA4NzkxNDgnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA4NzkxNDggPC0gcGFzdGUwKFBNSURfMzA4NzkxNDgkam91cm5hbCwnICcsIFBNSURfMzA4NzkxNDgkeWVhciwgJyAnLCBQTUlEXzMwODc5MTQ4JG1vbnRoLCc7JywgUE1JRF8zMDg3OTE0OCR2b2x1bWUsJygnLCBQTUlEXzMwODc5MTQ4JG51bWJlciwnKTonLCBQTUlEXzMwODc5MTQ4JHBhZ2VzKQoKUHViTWVkXzMwODc5MTQ4IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA4NzkxNDgkZXByaW50KQoKZG9pXzMwODc5MTQ4IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA4NzkxNDgkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA4NzkxNDggPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA4NzkxNDgkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDg3OTE0OCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDg3OTE0OCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA4NzkxNDggPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDg3OTE0OCR0aXRsZSAsICIgUE1JRDogMzA4NzkxNDggIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmFydGljbGVzIDwtIGFydGljbGVzICU+JQoKYWRkX3JvdygKCkFydGljbGVDaXRhdGlvbiA9IFBNSURfMzA4NzkxNDgsClBNSUQgPSBQTUlEXzMwODc5MTQ4JGVwcmludCwKVGl0bGUgPSBQTUlEXzMwODc5MTQ4JHRpdGxlLAojIEF1dGhvciA9IFBNSURfMzA4NzkxNDgkYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzA4NzkxNDgkYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMwODc5MTQ4JGpvdXJuYWwsClllYXIgPSBQTUlEXzMwODc5MTQ4JHllYXIsCk1vbnRoID0gUE1JRF8zMDg3OTE0OCRtb250aCwKIyBWb2x1bWUgPSBQTUlEXzMwODc5MTQ4JHZvbHVtZSwKIyBOdW1iZXIgPSBQTUlEXzMwODc5MTQ4JG51bWJlciwKIyBQYWdlcyA9IFBNSURfMzA4NzkxNDgkcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzA4NzkxNDgkZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMDg3OTE0OCRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMwODc5MTQ4JGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMDg3OTE0OCRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzA4NzkxNDgkaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA4NzkxNDgkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDg3OTE0OGAqCgpgciBQdWJNZWRfMzA4NzkxNDhgCgpgciBhZGR0aGlzX2lubGluZV8zMDg3OTE0OGAKCmByIFBNSURfMzA4NzkxNDgkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDg3OTE0OGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDg3OTE0OGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwODc5MTQ4YAoKPC9kZXRhaWxzPgoKLS0tCgoKYGBge3IgMzA5ODY4MDEsIGluY2x1ZGU9RkFMU0V9CmFydGljbGVzIDwtIHJlYWRSRFMoJ2FydGljbGVzLnJkcycpCgoKUE1JRF8zMDk4NjgwMSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk4NjgwMScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk4NjgwMSA8LSBwYXN0ZTAoUE1JRF8zMDk4NjgwMSRqb3VybmFsLCcgJywgUE1JRF8zMDk4NjgwMSR5ZWFyLCAnICcsIFBNSURfMzA5ODY4MDEkbW9udGgsJzsnLCBQTUlEXzMwOTg2ODAxJHZvbHVtZSwnKCcsIFBNSURfMzA5ODY4MDEkbnVtYmVyLCcpOicsIFBNSURfMzA5ODY4MDEkcGFnZXMpCgpQdWJNZWRfMzA5ODY4MDEgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk4NjgwMSRlcHJpbnQpCgpkb2lfMzA5ODY4MDEgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk4NjgwMSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk4NjgwMSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk4NjgwMSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTg2ODAxIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTg2ODAxJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk4NjgwMSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTg2ODAxJHRpdGxlICwgIiBQTUlEOiAzMDk4NjgwMSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8zMDk4NjgwMSwKUE1JRCA9IFBNSURfMzA5ODY4MDEkZXByaW50LApUaXRsZSA9IFBNSURfMzA5ODY4MDEkdGl0bGUsCkF1dGhvciA9IFBNSURfMzA5ODY4MDEkYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzA5ODY4MDEkYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMwOTg2ODAxJGpvdXJuYWwsClllYXIgPSBQTUlEXzMwOTg2ODAxJHllYXIsCk1vbnRoID0gUE1JRF8zMDk4NjgwMSRtb250aCwKVm9sdW1lID0gUE1JRF8zMDk4NjgwMSR2b2x1bWUsCk51bWJlciA9IFBNSURfMzA5ODY4MDEkbnVtYmVyLApQYWdlcyA9IFBNSURfMzA5ODY4MDEkcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzA5ODY4MDEkZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMDk4NjgwMSRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMwOTg2ODAxJGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMDk4NjgwMSRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzA5ODY4MDEkaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5ODY4MDEkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk4NjgwMWAqCgpgciBQdWJNZWRfMzA5ODY4MDFgCgpgciBhZGR0aGlzX2lubGluZV8zMDk4NjgwMWAKCmByIFBNSURfMzA5ODY4MDEkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk4NjgwMWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk4NjgwMWAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTg2ODAxYAoKPC9kZXRhaWxzPgoKCi0tLQoKYGBge3IgMzEwMDk0MDYsIGluY2x1ZGU9RkFMU0V9CgphcnRpY2xlcyA8LSByZWFkUkRTKCdhcnRpY2xlcy5yZHMnKQoKClBNSURfMzEwMDk0MDYgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzEwMDk0MDYnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzEwMDk0MDYgPC0gcGFzdGUwKFBNSURfMzEwMDk0MDYkam91cm5hbCwnICcsIFBNSURfMzEwMDk0MDYkeWVhciwgJyAnLCBQTUlEXzMxMDA5NDA2JG1vbnRoLCc7JywgUE1JRF8zMTAwOTQwNiR2b2x1bWUsJygnLCBQTUlEXzMxMDA5NDA2JG51bWJlciwnKTonLCBQTUlEXzMxMDA5NDA2JHBhZ2VzKQoKUHViTWVkXzMxMDA5NDA2IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzEwMDk0MDYkZXByaW50KQoKZG9pXzMxMDA5NDA2IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzEwMDk0MDYkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzEwMDk0MDYgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzEwMDk0MDYkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMTAwOTQwNiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMTAwOTQwNiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzEwMDk0MDYgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMTAwOTQwNiR0aXRsZSAsICIgUE1JRDogMzEwMDk0MDYgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmFydGljbGVzIDwtIGFydGljbGVzICU+JQoKYWRkX3JvdygKCkFydGljbGVDaXRhdGlvbiA9IFBNSURfMzEwMDk0MDYsClBNSUQgPSBQTUlEXzMxMDA5NDA2JGVwcmludCwKVGl0bGUgPSBQTUlEXzMxMDA5NDA2JHRpdGxlLAojIEF1dGhvciA9IFBNSURfMzEwMDk0MDYkYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzEwMDk0MDYkYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMxMDA5NDA2JGpvdXJuYWwsClllYXIgPSBQTUlEXzMxMDA5NDA2JHllYXIsCk1vbnRoID0gUE1JRF8zMTAwOTQwNiRtb250aCwKIyBWb2x1bWUgPSBQTUlEXzMxMDA5NDA2JHZvbHVtZSwKIyBOdW1iZXIgPSBQTUlEXzMxMDA5NDA2JG51bWJlciwKIyBQYWdlcyA9IFBNSURfMzEwMDk0MDYkcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzEwMDk0MDYkZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMTAwOTQwNiRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMxMDA5NDA2JGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMTAwOTQwNiRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzEwMDk0MDYkaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzEwMDk0MDYkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMTAwOTQwNmAqCgpgciBQdWJNZWRfMzEwMDk0MDZgCgpgciBhZGR0aGlzX2lubGluZV8zMTAwOTQwNmAKCmByIFBNSURfMzEwMDk0MDYkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMTAwOTQwNmAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMTAwOTQwNmAKCmByIGFsdG1ldHJpY0JhZGdlXzMxMDA5NDA2YAoKPC9kZXRhaWxzPgoKLS0tCgoKCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgojIyMjIE1pY3JvZW52aXJvbm1lbnQgCgpUdW1vciBTdHJvbWEgSW50ZXJhY3Rpb25zLCBNaWNyb2Vudmlyb25tZW50LCBJbmZsYW1tYXRvcnkgUmVzcG9uc2UKCmBgYHtyIFMgVHVtb3IgU3Ryb21hIEludGVyYWN0aW9ucyBNaWNyb2Vudmlyb25tZW50IEluZmxhbW1hdG9yeSBSZXNwb25zZSwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKLS0tCgotLS0KCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKIyMjIyBTUE4KClNvbGlkIFBzZXVkb3BhcGlsbGFyeSBOZW9wbGFzbQoKYGBge3IgUyBTUE4gU29saWQgUHNldWRvcGFwaWxsYXJ5IE5lb3BsYXNtLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgotLS0KCmBgYHtyIDMwOTczNDY0LCBpbmNsdWRlPUZBTFNFfQoKYXJ0aWNsZXMgPC0gcmVhZFJEUygnYXJ0aWNsZXMucmRzJykKCgpQTUlEXzMwOTczNDY0IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTczNDY0JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTczNDY0IDwtIHBhc3RlMChQTUlEXzMwOTczNDY0JGpvdXJuYWwsJyAnLCBQTUlEXzMwOTczNDY0JHllYXIsICcgJywgUE1JRF8zMDk3MzQ2NCRtb250aCwnOycsIFBNSURfMzA5NzM0NjQkdm9sdW1lLCcoJywgUE1JRF8zMDk3MzQ2NCRudW1iZXIsJyk6JywgUE1JRF8zMDk3MzQ2NCRwYWdlcykKClB1Yk1lZF8zMDk3MzQ2NCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTczNDY0JGVwcmludCkKCmRvaV8zMDk3MzQ2NCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTczNDY0JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTczNDY0IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTczNDY0JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NzM0NjQgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NzM0NjQkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTczNDY0IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NzM0NjQkdGl0bGUgLCAiIFBNSUQ6IDMwOTczNDY0ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgphcnRpY2xlcyA8LSBhcnRpY2xlcyAlPiUKCmFkZF9yb3coCgpBcnRpY2xlQ2l0YXRpb24gPSBQTUlEXzMwOTczNDY0LApQTUlEID0gUE1JRF8zMDk3MzQ2NCRlcHJpbnQsClRpdGxlID0gUE1JRF8zMDk3MzQ2NCR0aXRsZSwKIyBBdXRob3IgPSBQTUlEXzMwOTczNDY0JGF1dGhvciwKQWJzdHJhY3QgPSBQTUlEXzMwOTczNDY0JGFic3RyYWN0LApKb3VybmFsID0gUE1JRF8zMDk3MzQ2NCRqb3VybmFsLApZZWFyID0gUE1JRF8zMDk3MzQ2NCR5ZWFyLApNb250aCA9IFBNSURfMzA5NzM0NjQkbW9udGgsCiMgVm9sdW1lID0gUE1JRF8zMDk3MzQ2NCR2b2x1bWUsCiMgTnVtYmVyID0gUE1JRF8zMDk3MzQ2NCRudW1iZXIsCiMgUGFnZXMgPSBQTUlEXzMwOTczNDY0JHBhZ2VzLApQdWJNZWRMaW5rID0gcGFzdGUwKCdodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8/dGVybT0nLCBQTUlEXzMwOTczNDY0JGVwcmludCksCkRvaU51bWJlciA9IFBNSURfMzA5NzM0NjQkZG9pLApEb2lMaW5rID0gcGFzdGUwKCdodHRwczovL2RvaS5vcmcvJywgUE1JRF8zMDk3MzQ2NCRkb2kpLApMYW5ndWFnZSA9IFBNSURfMzA5NzM0NjQkbGFuZ3VhZ2UsCklTU04gPSBQTUlEXzMwOTczNDY0JGlzc24KKSAlPiUKCnVuaXF1ZSgpCgoKU3lzLnNsZWVwKDEpCgpzYXZlUkRTKGFydGljbGVzLCAnYXJ0aWNsZXMucmRzJykKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTczNDY0JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NzM0NjRgKgoKYHIgUHViTWVkXzMwOTczNDY0YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NzM0NjRgCgpgciBQTUlEXzMwOTczNDY0JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NzM0NjRgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NzM0NjRgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk3MzQ2NGAKCjwvZGV0YWlscz4KCi0tLQoKCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgojIyMjIEFuYWxvZ3VlIFR1bW9ycyAmIExlc2lvbnMKCgpgYGB7ciBTIFBhbmNyZWFzIEFuYWxvZ3VlIFR1bW9ycyBMZXNpb25zLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgotLS0KCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKIyMjIyBQYW5jcmVhdGl0aXMgJiBPdGhlciBEaXNlYXNlcwoKYGBge3IgUGFuY3JlYXMgUGFuY3JlYXRpdGlzICYgT3RoZXIgRGlzZWFzZXMsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCi0tLQoKLS0tCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKCgoKIyMjIEJpbGUgRHVjdHMKCmBgYHtyIFMgQmlsZSBEdWN0cywgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgotLS0KCiMjIyMgTW9ycGhvbG9neSwgRGlhZ25vc3RpY3MsIElIQwoKTW9ycGhvbG9neSwgRGlhZ25vc3RpY3MsIElIQwoKCmBgYHtyIFMgQmlsZSBEdWN0cyBNb3JwaG9sb2d5IERpYWdub3N0aWNzIElIQywgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKLS0tCgpgYGB7ciAzMDY2NzUzNywgaW5jbHVkZT1GQUxTRX0KCmFydGljbGVzIDwtIHJlYWRSRFMoJ2FydGljbGVzLnJkcycpCgoKUE1JRF8zMDY2NzUzNyA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDY2NzUzNycsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDY2NzUzNyA8LSBwYXN0ZTAoUE1JRF8zMDY2NzUzNyRqb3VybmFsLCcgJywgUE1JRF8zMDY2NzUzNyR5ZWFyLCAnICcsIFBNSURfMzA2Njc1MzckbW9udGgsJzsnLCBQTUlEXzMwNjY3NTM3JHZvbHVtZSwnKCcsIFBNSURfMzA2Njc1MzckbnVtYmVyLCcpOicsIFBNSURfMzA2Njc1MzckcGFnZXMpCgpQdWJNZWRfMzA2Njc1MzcgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDY2NzUzNyRlcHJpbnQpCgpkb2lfMzA2Njc1MzcgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDY2NzUzNyRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDY2NzUzNyA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDY2NzUzNyRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNjY3NTM3IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNjY3NTM3JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDY2NzUzNyA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNjY3NTM3JHRpdGxlICwgIiBQTUlEOiAzMDY2NzUzNyAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8zMDY2NzUzNywKUE1JRCA9IFBNSURfMzA2Njc1MzckZXByaW50LApUaXRsZSA9IFBNSURfMzA2Njc1MzckdGl0bGUsCiMgQXV0aG9yID0gUE1JRF8zMDY2NzUzNyRhdXRob3IsCkFic3RyYWN0ID0gUE1JRF8zMDY2NzUzNyRhYnN0cmFjdCwKSm91cm5hbCA9IFBNSURfMzA2Njc1Mzckam91cm5hbCwKWWVhciA9IFBNSURfMzA2Njc1MzckeWVhciwKTW9udGggPSBQTUlEXzMwNjY3NTM3JG1vbnRoLAojIFZvbHVtZSA9IFBNSURfMzA2Njc1Mzckdm9sdW1lLAojIE51bWJlciA9IFBNSURfMzA2Njc1MzckbnVtYmVyLAojIFBhZ2VzID0gUE1JRF8zMDY2NzUzNyRwYWdlcywKUHViTWVkTGluayA9IHBhc3RlMCgnaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvP3Rlcm09JywgUE1JRF8zMDY2NzUzNyRlcHJpbnQpLApEb2lOdW1iZXIgPSBQTUlEXzMwNjY3NTM3JGRvaSwKRG9pTGluayA9IHBhc3RlMCgnaHR0cHM6Ly9kb2kub3JnLycsIFBNSURfMzA2Njc1MzckZG9pKSwKTGFuZ3VhZ2UgPSBQTUlEXzMwNjY3NTM3JGxhbmd1YWdlLApJU1NOID0gUE1JRF8zMDY2NzUzNyRpc3NuCikgJT4lCgp1bmlxdWUoKQoKClN5cy5zbGVlcCgxKQoKc2F2ZVJEUyhhcnRpY2xlcywgJ2FydGljbGVzLnJkcycpCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDY2NzUzNyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNjY3NTM3YCoKCmByIFB1Yk1lZF8zMDY2NzUzN2AKCmByIGFkZHRoaXNfaW5saW5lXzMwNjY3NTM3YAoKYHIgUE1JRF8zMDY2NzUzNyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNjY3NTM3YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNjY3NTM3YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA2Njc1MzdgCgo8L2RldGFpbHM+CgotLS0KCgpgYGB7ciAzMDAwMTIzNCwgaW5jbHVkZT1GQUxTRX0KYXJ0aWNsZXMgPC0gcmVhZFJEUygnYXJ0aWNsZXMucmRzJykKCgpQTUlEXzMwMDAxMjM0IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwMDAxMjM0JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwMDAxMjM0IDwtIHBhc3RlMChQTUlEXzMwMDAxMjM0JGpvdXJuYWwsJyAnLCBQTUlEXzMwMDAxMjM0JHllYXIsICcgJywgUE1JRF8zMDAwMTIzNCRtb250aCwnOycsIFBNSURfMzAwMDEyMzQkdm9sdW1lLCcoJywgUE1JRF8zMDAwMTIzNCRudW1iZXIsJyk6JywgUE1JRF8zMDAwMTIzNCRwYWdlcykKClB1Yk1lZF8zMDAwMTIzNCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwMDAxMjM0JGVwcmludCkKCmRvaV8zMDAwMTIzNCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwMDAxMjM0JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwMDAxMjM0IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwMDAxMjM0JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzAwMDEyMzQgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzAwMDEyMzQkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwMDAxMjM0IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzAwMDEyMzQkdGl0bGUgLCAiIFBNSUQ6IDMwMDAxMjM0ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgphcnRpY2xlcyA8LSBhcnRpY2xlcyAlPiUKCmFkZF9yb3coCgpBcnRpY2xlQ2l0YXRpb24gPSBQTUlEXzMwMDAxMjM0LApQTUlEID0gUE1JRF8zMDAwMTIzNCRlcHJpbnQsClRpdGxlID0gUE1JRF8zMDAwMTIzNCR0aXRsZSwKIyBBdXRob3IgPSBQTUlEXzMwMDAxMjM0JGF1dGhvciwKQWJzdHJhY3QgPSBQTUlEXzMwMDAxMjM0JGFic3RyYWN0LApKb3VybmFsID0gUE1JRF8zMDAwMTIzNCRqb3VybmFsLApZZWFyID0gUE1JRF8zMDAwMTIzNCR5ZWFyLApNb250aCA9IFBNSURfMzAwMDEyMzQkbW9udGgsClZvbHVtZSA9IFBNSURfMzAwMDEyMzQkdm9sdW1lLApOdW1iZXIgPSBQTUlEXzMwMDAxMjM0JG51bWJlciwKUGFnZXMgPSBQTUlEXzMwMDAxMjM0JHBhZ2VzLApQdWJNZWRMaW5rID0gcGFzdGUwKCdodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8/dGVybT0nLCBQTUlEXzMwMDAxMjM0JGVwcmludCksCkRvaU51bWJlciA9IFBNSURfMzAwMDEyMzQkZG9pLApEb2lMaW5rID0gcGFzdGUwKCdodHRwczovL2RvaS5vcmcvJywgUE1JRF8zMDAwMTIzNCRkb2kpLApMYW5ndWFnZSA9IFBNSURfMzAwMDEyMzQkbGFuZ3VhZ2UsCklTU04gPSBQTUlEXzMwMDAxMjM0JGlzc24KKSAlPiUKCnVuaXF1ZSgpCgoKU3lzLnNsZWVwKDEpCgpzYXZlUkRTKGFydGljbGVzLCAnYXJ0aWNsZXMucmRzJykKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwMDAxMjM0JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzAwMDEyMzRgKgoKYHIgUHViTWVkXzMwMDAxMjM0YAoKYHIgYWRkdGhpc19pbmxpbmVfMzAwMDEyMzRgCgpgciBQTUlEXzMwMDAxMjM0JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzAwMDEyMzRgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzAwMDEyMzRgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDAwMTIzNGAKCjwvZGV0YWlscz4KCi0tLQoKCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgojIyMjIFN0YWdpbmcKCkJpbGUgRHVjdHMgVE5NIHN0YWdpbmcsIE1hcmdpbnMsIFN1cnZpdmFsCgpgYGB7ciBCaWxlIER1Y3RzIFROTSBzdGFnaW5nIE1hcmdpbnMgU3Vydml2YWwsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCi0tLQoKYGBge3IgMzEwMTIwNDUsIGluY2x1ZGU9RkFMU0V9CgphcnRpY2xlcyA8LSByZWFkUkRTKCdhcnRpY2xlcy5yZHMnKQoKClBNSURfMzEwMTIwNDUgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzEwMTIwNDUnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzEwMTIwNDUgPC0gcGFzdGUwKFBNSURfMzEwMTIwNDUkam91cm5hbCwnICcsIFBNSURfMzEwMTIwNDUkeWVhciwgJyAnLCBQTUlEXzMxMDEyMDQ1JG1vbnRoLCc7JywgUE1JRF8zMTAxMjA0NSR2b2x1bWUsJygnLCBQTUlEXzMxMDEyMDQ1JG51bWJlciwnKTonLCBQTUlEXzMxMDEyMDQ1JHBhZ2VzKQoKUHViTWVkXzMxMDEyMDQ1IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzEwMTIwNDUkZXByaW50KQoKZG9pXzMxMDEyMDQ1IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzEwMTIwNDUkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzEwMTIwNDUgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzEwMTIwNDUkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMTAxMjA0NSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMTAxMjA0NSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzEwMTIwNDUgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMTAxMjA0NSR0aXRsZSAsICIgUE1JRDogMzEwMTIwNDUgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmFydGljbGVzIDwtIGFydGljbGVzICU+JQoKYWRkX3JvdygKCkFydGljbGVDaXRhdGlvbiA9IFBNSURfMzEwMTIwNDUsClBNSUQgPSBQTUlEXzMxMDEyMDQ1JGVwcmludCwKVGl0bGUgPSBQTUlEXzMxMDEyMDQ1JHRpdGxlLAojIEF1dGhvciA9IFBNSURfMzEwMTIwNDUkYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzEwMTIwNDUkYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMxMDEyMDQ1JGpvdXJuYWwsClllYXIgPSBQTUlEXzMxMDEyMDQ1JHllYXIsCk1vbnRoID0gUE1JRF8zMTAxMjA0NSRtb250aCwKIyBWb2x1bWUgPSBQTUlEXzMxMDEyMDQ1JHZvbHVtZSwKIyBOdW1iZXIgPSBQTUlEXzMxMDEyMDQ1JG51bWJlciwKIyBQYWdlcyA9IFBNSURfMzEwMTIwNDUkcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzEwMTIwNDUkZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMTAxMjA0NSRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMxMDEyMDQ1JGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMTAxMjA0NSRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzEwMTIwNDUkaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzEwMTIwNDUkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMTAxMjA0NWAqCgpgciBQdWJNZWRfMzEwMTIwNDVgCgpgciBhZGR0aGlzX2lubGluZV8zMTAxMjA0NWAKCmByIFBNSURfMzEwMTIwNDUkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMTAxMjA0NWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMTAxMjA0NWAKCmByIGFsdG1ldHJpY0JhZGdlXzMxMDEyMDQ1YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciAzMDk4NjgwMywgaW5jbHVkZT1GQUxTRX0KCmFydGljbGVzIDwtIHJlYWRSRFMoJ2FydGljbGVzLnJkcycpCgoKUE1JRF8zMDk4NjgwMyA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk4NjgwMycsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk4NjgwMyA8LSBwYXN0ZTAoUE1JRF8zMDk4NjgwMyRqb3VybmFsLCcgJywgUE1JRF8zMDk4NjgwMyR5ZWFyLCAnICcsIFBNSURfMzA5ODY4MDMkbW9udGgsJzsnLCBQTUlEXzMwOTg2ODAzJHZvbHVtZSwnKCcsIFBNSURfMzA5ODY4MDMkbnVtYmVyLCcpOicsIFBNSURfMzA5ODY4MDMkcGFnZXMpCgpQdWJNZWRfMzA5ODY4MDMgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk4NjgwMyRlcHJpbnQpCgpkb2lfMzA5ODY4MDMgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk4NjgwMyRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk4NjgwMyA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk4NjgwMyRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTg2ODAzIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTg2ODAzJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk4NjgwMyA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTg2ODAzJHRpdGxlICwgIiBQTUlEOiAzMDk4NjgwMyAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8zMDk4NjgwMywKUE1JRCA9IFBNSURfMzA5ODY4MDMkZXByaW50LApUaXRsZSA9IFBNSURfMzA5ODY4MDMkdGl0bGUsCiMgQXV0aG9yID0gUE1JRF8zMDk4NjgwMyRhdXRob3IsCkFic3RyYWN0ID0gUE1JRF8zMDk4NjgwMyRhYnN0cmFjdCwKSm91cm5hbCA9IFBNSURfMzA5ODY4MDMkam91cm5hbCwKWWVhciA9IFBNSURfMzA5ODY4MDMkeWVhciwKTW9udGggPSBQTUlEXzMwOTg2ODAzJG1vbnRoLAojIFZvbHVtZSA9IFBNSURfMzA5ODY4MDMkdm9sdW1lLAojIE51bWJlciA9IFBNSURfMzA5ODY4MDMkbnVtYmVyLAojIFBhZ2VzID0gUE1JRF8zMDk4NjgwMyRwYWdlcywKUHViTWVkTGluayA9IHBhc3RlMCgnaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvP3Rlcm09JywgUE1JRF8zMDk4NjgwMyRlcHJpbnQpLApEb2lOdW1iZXIgPSBQTUlEXzMwOTg2ODAzJGRvaSwKRG9pTGluayA9IHBhc3RlMCgnaHR0cHM6Ly9kb2kub3JnLycsIFBNSURfMzA5ODY4MDMkZG9pKSwKTGFuZ3VhZ2UgPSBQTUlEXzMwOTg2ODAzJGxhbmd1YWdlLApJU1NOID0gUE1JRF8zMDk4NjgwMyRpc3NuCikgJT4lCgp1bmlxdWUoKQoKClN5cy5zbGVlcCgxKQoKc2F2ZVJEUyhhcnRpY2xlcywgJ2FydGljbGVzLnJkcycpCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk4NjgwMyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTg2ODAzYCoKCmByIFB1Yk1lZF8zMDk4NjgwM2AKCmByIGFkZHRoaXNfaW5saW5lXzMwOTg2ODAzYAoKYHIgUE1JRF8zMDk4NjgwMyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTg2ODAzYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTg2ODAzYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5ODY4MDNgCgo8L2RldGFpbHM+CgoKLS0tCgpgYGB7ciB6enogMzA5MjcxOTQsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTI3MTk0IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTI3MTk0JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTI3MTk0IDwtIHBhc3RlMChQTUlEXzMwOTI3MTk0JGpvdXJuYWwsJyAnLCBQTUlEXzMwOTI3MTk0JHllYXIsICcgJywgUE1JRF8zMDkyNzE5NCRtb250aCwnOycsIFBNSURfMzA5MjcxOTQkdm9sdW1lLCcoJywgUE1JRF8zMDkyNzE5NCRudW1iZXIsJyk6JywgUE1JRF8zMDkyNzE5NCRwYWdlcykKClB1Yk1lZF8zMDkyNzE5NCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTI3MTk0JGVwcmludCkKCmRvaV8zMDkyNzE5NCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTI3MTk0JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTI3MTk0IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTI3MTk0JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5MjcxOTQgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5MjcxOTQkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTI3MTk0IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5MjcxOTQkdGl0bGUgLCAiIFBNSUQ6IDMwOTI3MTk0ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDkyNzE5NCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTI3MTk0YCoKCmByIFB1Yk1lZF8zMDkyNzE5NGAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTI3MTk0YAoKYHIgUE1JRF8zMDkyNzE5NCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTI3MTk0YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTI3MTk0YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5MjcxOTRgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIHp6eiAyODQyNDk4NywgaW5jbHVkZT1GQUxTRX0KClBNSURfMjg0MjQ5ODcgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMjg0MjQ5ODcnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMjg0MjQ5ODcgPC0gcGFzdGUwKFBNSURfMjg0MjQ5ODckam91cm5hbCwnICcsIFBNSURfMjg0MjQ5ODckeWVhciwgJyAnLCBQTUlEXzI4NDI0OTg3JG1vbnRoLCc7JywgUE1JRF8yODQyNDk4NyR2b2x1bWUsJygnLCBQTUlEXzI4NDI0OTg3JG51bWJlciwnKTonLCBQTUlEXzI4NDI0OTg3JHBhZ2VzKQoKUHViTWVkXzI4NDI0OTg3IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMjg0MjQ5ODckZXByaW50KQoKZG9pXzI4NDI0OTg3IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMjg0MjQ5ODckZG9pKQoKZGltZW5zaW9uQmFkZ2VfMjg0MjQ5ODcgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMjg0MjQ5ODckZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8yODQyNDk4NyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8yODQyNDk4NyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMjg0MjQ5ODcgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8yODQyNDk4NyR0aXRsZSAsICIgUE1JRDogMjg0MjQ5ODcgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8yODQyNDk4NyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzI4NDI0OTg3YCoKCmByIFB1Yk1lZF8yODQyNDk4N2AKCmByIGFkZHRoaXNfaW5saW5lXzI4NDI0OTg3YAoKYHIgUE1JRF8yODQyNDk4NyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzI4NDI0OTg3YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzI4NDI0OTg3YAoKYHIgYWx0bWV0cmljQmFkZ2VfMjg0MjQ5ODdgCgo8L2RldGFpbHM+CgoKLS0tCgotICoqQSBub3ZlbCBvbmxpbmUgcHJvZ25vc3RpYyB0b29sIHRvIHByZWRpY3QgbG9uZ+KAkHRlcm0gc3Vydml2YWwgYWZ0ZXIgbGl2ZXIgcmVzZWN0aW9uIGZvciBpbnRyYWhlcGF0aWMgY2hvbGFuZ2lvY2FyY2lub21hOiBUaGUg4oCcbWV0cm/igJB0aWNrZXTigJ0gcGFyYWRpZ20qKgoKaHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvYWJzLzEwLjEwMDIvanNvLjI1NDgwCgotLS0KCgoKCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKIyMjIEdhbGxibGFkZGVyCgoKYGBge3IgUyBHYWxsYmxhZGRlciwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKLS0tCgojIyMjIE1vcnBob2xvZ3ksIERpYWdub3N0aWNzLCBJSEMKCk1vcnBob2xvZ3ksIERpYWdub3N0aWNzLCBJSEMKCgpgYGB7ciBTIEdhbGxibGFkZGVyIE1vcnBob2xvZ3kgRGlhZ25vc3RpY3MgSUhDLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgotLS0KCmBgYHtyIHp6eiAzMDk0NjkzNSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA5NDY5MzUgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5NDY5MzUnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5NDY5MzUgPC0gcGFzdGUwKFBNSURfMzA5NDY5MzUkam91cm5hbCwnICcsIFBNSURfMzA5NDY5MzUkeWVhciwgJyAnLCBQTUlEXzMwOTQ2OTM1JG1vbnRoLCc7JywgUE1JRF8zMDk0NjkzNSR2b2x1bWUsJygnLCBQTUlEXzMwOTQ2OTM1JG51bWJlciwnKTonLCBQTUlEXzMwOTQ2OTM1JHBhZ2VzKQoKUHViTWVkXzMwOTQ2OTM1IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5NDY5MzUkZXByaW50KQoKZG9pXzMwOTQ2OTM1IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5NDY5MzUkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5NDY5MzUgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5NDY5MzUkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk0NjkzNSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk0NjkzNSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5NDY5MzUgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk0NjkzNSR0aXRsZSAsICIgUE1JRDogMzA5NDY5MzUgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTQ2OTM1JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NDY5MzVgKgoKYHIgUHViTWVkXzMwOTQ2OTM1YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NDY5MzVgCgpgciBQTUlEXzMwOTQ2OTM1JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NDY5MzVgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NDY5MzVgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk0NjkzNWAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTI5MzcwLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDkyOTM3MCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDkyOTM3MCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDkyOTM3MCA8LSBwYXN0ZTAoUE1JRF8zMDkyOTM3MCRqb3VybmFsLCcgJywgUE1JRF8zMDkyOTM3MCR5ZWFyLCAnICcsIFBNSURfMzA5MjkzNzAkbW9udGgsJzsnLCBQTUlEXzMwOTI5MzcwJHZvbHVtZSwnKCcsIFBNSURfMzA5MjkzNzAkbnVtYmVyLCcpOicsIFBNSURfMzA5MjkzNzAkcGFnZXMpCgpQdWJNZWRfMzA5MjkzNzAgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDkyOTM3MCRlcHJpbnQpCgpkb2lfMzA5MjkzNzAgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDkyOTM3MCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDkyOTM3MCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDkyOTM3MCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTI5MzcwIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTI5MzcwJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDkyOTM3MCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTI5MzcwJHRpdGxlICwgIiBQTUlEOiAzMDkyOTM3MCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5MjkzNzAkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDkyOTM3MGAqCgpgciBQdWJNZWRfMzA5MjkzNzBgCgpgciBhZGR0aGlzX2lubGluZV8zMDkyOTM3MGAKCmByIFBNSURfMzA5MjkzNzAkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDkyOTM3MGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDkyOTM3MGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTI5MzcwYAoKPC9kZXRhaWxzPgoKLS0tCgotICoqSUzigJAzMyBvdmVyZXhwcmVzc2lvbiBpbiBnYWxsYmxhZGRlciBjYW5jZXJzIGFzc29jaWF0ZWQgd2l0aCBwYW5jcmVhdG9iaWxpYXJ5IG1hbGp1bmN0aW9uKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMTExL2hpcy4xMzg2MwoKCi0tLQoKCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKIyMjIyBTdGFnaW5nCgpHYWxsYmxhZGRlciBUTk0gc3RhZ2luZywgTWFyZ2lucywgU3Vydml2YWwKCmBgYHtyIEdhbGxibGFkZGVyIFROTSBzdGFnaW5nIE1hcmdpbnMgU3Vydml2YWwsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCi0tLQoKYGBge3IgMzEwMTA2MzIsIGluY2x1ZGU9RkFMU0V9CgphcnRpY2xlcyA8LSByZWFkUkRTKCdhcnRpY2xlcy5yZHMnKQoKClBNSURfMzEwMTA2MzIgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzEwMTA2MzInLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzEwMTA2MzIgPC0gcGFzdGUwKFBNSURfMzEwMTA2MzIkam91cm5hbCwnICcsIFBNSURfMzEwMTA2MzIkeWVhciwgJyAnLCBQTUlEXzMxMDEwNjMyJG1vbnRoLCc7JywgUE1JRF8zMTAxMDYzMiR2b2x1bWUsJygnLCBQTUlEXzMxMDEwNjMyJG51bWJlciwnKTonLCBQTUlEXzMxMDEwNjMyJHBhZ2VzKQoKUHViTWVkXzMxMDEwNjMyIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzEwMTA2MzIkZXByaW50KQoKZG9pXzMxMDEwNjMyIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzEwMTA2MzIkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzEwMTA2MzIgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzEwMTA2MzIkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMTAxMDYzMiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMTAxMDYzMiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzEwMTA2MzIgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMTAxMDYzMiR0aXRsZSAsICIgUE1JRDogMzEwMTA2MzIgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmFydGljbGVzIDwtIGFydGljbGVzICU+JQoKYWRkX3JvdygKCkFydGljbGVDaXRhdGlvbiA9IFBNSURfMzEwMTA2MzIsClBNSUQgPSBQTUlEXzMxMDEwNjMyJGVwcmludCwKVGl0bGUgPSBQTUlEXzMxMDEwNjMyJHRpdGxlLAojIEF1dGhvciA9IFBNSURfMzEwMTA2MzIkYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzEwMTA2MzIkYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMxMDEwNjMyJGpvdXJuYWwsClllYXIgPSBQTUlEXzMxMDEwNjMyJHllYXIsCk1vbnRoID0gUE1JRF8zMTAxMDYzMiRtb250aCwKIyBWb2x1bWUgPSBQTUlEXzMxMDEwNjMyJHZvbHVtZSwKIyBOdW1iZXIgPSBQTUlEXzMxMDEwNjMyJG51bWJlciwKIyBQYWdlcyA9IFBNSURfMzEwMTA2MzIkcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzEwMTA2MzIkZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMTAxMDYzMiRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMxMDEwNjMyJGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMTAxMDYzMiRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzEwMTA2MzIkaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzEwMTA2MzIkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMTAxMDYzMmAqCgpgciBQdWJNZWRfMzEwMTA2MzJgCgpgciBhZGR0aGlzX2lubGluZV8zMTAxMDYzMmAKCmByIFBNSURfMzEwMTA2MzIkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMTAxMDYzMmAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMTAxMDYzMmAKCmByIGFsdG1ldHJpY0JhZGdlXzMxMDEwNjMyYAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciAyODY4MzAxMCwgaW5jbHVkZT1GQUxTRX0KCmFydGljbGVzIDwtIHJlYWRSRFMoJ2FydGljbGVzLnJkcycpCgoKUE1JRF8yODY4MzAxMCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCcyODY4MzAxMCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8yODY4MzAxMCA8LSBwYXN0ZTAoUE1JRF8yODY4MzAxMCRqb3VybmFsLCcgJywgUE1JRF8yODY4MzAxMCR5ZWFyLCAnICcsIFBNSURfMjg2ODMwMTAkbW9udGgsJzsnLCBQTUlEXzI4NjgzMDEwJHZvbHVtZSwnKCcsIFBNSURfMjg2ODMwMTAkbnVtYmVyLCcpOicsIFBNSURfMjg2ODMwMTAkcGFnZXMpCgpQdWJNZWRfMjg2ODMwMTAgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8yODY4MzAxMCRlcHJpbnQpCgpkb2lfMjg2ODMwMTAgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8yODY4MzAxMCRkb2kpCgpkaW1lbnNpb25CYWRnZV8yODY4MzAxMCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8yODY4MzAxMCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzI4NjgzMDEwIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzI4NjgzMDEwJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8yODY4MzAxMCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzI4NjgzMDEwJHRpdGxlICwgIiBQTUlEOiAyODY4MzAxMCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8yODY4MzAxMCwKUE1JRCA9IFBNSURfMjg2ODMwMTAkZXByaW50LApUaXRsZSA9IFBNSURfMjg2ODMwMTAkdGl0bGUsCiMgQXV0aG9yID0gUE1JRF8yODY4MzAxMCRhdXRob3IsCkFic3RyYWN0ID0gUE1JRF8yODY4MzAxMCRhYnN0cmFjdCwKSm91cm5hbCA9IFBNSURfMjg2ODMwMTAkam91cm5hbCwKWWVhciA9IFBNSURfMjg2ODMwMTAkeWVhciwKTW9udGggPSBQTUlEXzI4NjgzMDEwJG1vbnRoLAojIFZvbHVtZSA9IFBNSURfMjg2ODMwMTAkdm9sdW1lLAojIE51bWJlciA9IFBNSURfMjg2ODMwMTAkbnVtYmVyLAojIFBhZ2VzID0gUE1JRF8yODY4MzAxMCRwYWdlcywKUHViTWVkTGluayA9IHBhc3RlMCgnaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvP3Rlcm09JywgUE1JRF8yODY4MzAxMCRlcHJpbnQpLApEb2lOdW1iZXIgPSBQTUlEXzI4NjgzMDEwJGRvaSwKRG9pTGluayA9IHBhc3RlMCgnaHR0cHM6Ly9kb2kub3JnLycsIFBNSURfMjg2ODMwMTAkZG9pKSwKTGFuZ3VhZ2UgPSBQTUlEXzI4NjgzMDEwJGxhbmd1YWdlLApJU1NOID0gUE1JRF8yODY4MzAxMCRpc3NuCikgJT4lCgp1bmlxdWUoKQoKClN5cy5zbGVlcCgxKQoKc2F2ZVJEUyhhcnRpY2xlcywgJ2FydGljbGVzLnJkcycpCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8yODY4MzAxMCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzI4NjgzMDEwYCoKCmByIFB1Yk1lZF8yODY4MzAxMGAKCmByIGFkZHRoaXNfaW5saW5lXzI4NjgzMDEwYAoKYHIgUE1JRF8yODY4MzAxMCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzI4NjgzMDEwYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzI4NjgzMDEwYAoKYHIgYWx0bWV0cmljQmFkZ2VfMjg2ODMwMTBgCgo8L2RldGFpbHM+CgotLS0KCgotICoqU3RhZ2luZyBnYWxsYmxhZGRlciBjYW5jZXIgd2l0aCBseW1waGFkZW5lY3RvbXk6IHRoZSBwcmFjdGljYWwgYXBwbGljYXRpb24gb2YgbmV3IEFIUEJBIGFuZCBBSkNDIGd1aWRlbGluZXMqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL2Ficy9waWkvUzEzNjUxODJYMTkzMDQ5ODgKCi0tLQoKYGBge3Igenp6IDMwNTYyODM5LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDU2MjgzOSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDU2MjgzOScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDU2MjgzOSA8LSBwYXN0ZTAoUE1JRF8zMDU2MjgzOSRqb3VybmFsLCcgJywgUE1JRF8zMDU2MjgzOSR5ZWFyLCAnICcsIFBNSURfMzA1NjI4MzkkbW9udGgsJzsnLCBQTUlEXzMwNTYyODM5JHZvbHVtZSwnKCcsIFBNSURfMzA1NjI4MzkkbnVtYmVyLCcpOicsIFBNSURfMzA1NjI4MzkkcGFnZXMpCgpQdWJNZWRfMzA1NjI4MzkgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDU2MjgzOSRlcHJpbnQpCgpkb2lfMzA1NjI4MzkgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDU2MjgzOSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDU2MjgzOSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDU2MjgzOSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNTYyODM5IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNTYyODM5JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDU2MjgzOSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNTYyODM5JHRpdGxlICwgIiBQTUlEOiAzMDU2MjgzOSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA1NjI4MzkkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDU2MjgzOWAqCgpgciBQdWJNZWRfMzA1NjI4MzlgCgpgciBhZGR0aGlzX2lubGluZV8zMDU2MjgzOWAKCmByIFBNSURfMzA1NjI4MzkkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDU2MjgzOWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDU2MjgzOWAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNTYyODM5YAoKPC9kZXRhaWxzPgoKCi0tLQoKLSAqKlByb2dub3N0aWMgSW1wYWN0IG9mIEx5bXBoIE5vZGUgRXhjaXNpb24gaW4gVDEgYW5kIFQyIEdhbGxibGFkZGVyIENhbmNlcjogYSBQb3B1bGF0aW9uLUJhc2VkIGFuZCBQcm9wZW5zaXR5IFNjb3JlLU1hdGNoZWQgU0VFUiBBbmFseXNpcyoqCgpodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2FydGljbGUvMTAuMTAwNy9zMTE2MDUtMDE5LTA0MTc1LTMKCgotLS0KCi0gKipFdm9sdXRpb24gb2Ygc3VyZ2ljYWwgbWFuYWdlbWVudCBvZiBnYWxsYmxhZGRlciBjYXJjaW5vbWEgYW5kIGltcGFjdCBvbiBvdXRjb21lOiByZXN1bHRzIGZyb20gdHdvIGRlY2FkZXMgYXQgYSBzaW5nbGUtaW5zdGl0dXRpb24qKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL2Ficy9waWkvUzEzNjUxODJYMTkzMDQ5NjQKCi0tLQoKCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKCiMjIyBBbXB1bGxhIG9mIFZhdGVyCgpgYGB7ciBTIEFtcHVsbGEgb2YgVmF0ZXIsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKLS0tCgojIyMjIE1vcnBob2xvZ3ksIERpYWdub3N0aWNzLCBJSEMKCk1vcnBob2xvZ3ksIERpYWdub3N0aWNzLCBJSEMKCgpgYGB7ciBTIEFtcHVsbGEgb2YgVmF0ZXIgTW9ycGhvbG9neSBEaWFnbm9zdGljcyBJSEMsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKLS0tCgotICoqUm9sZSBvZiBJbW11bm9oaXN0b2NoZW1pc3RyeSBpbiB0aGUgU3VidHlwaW5nIG9mIFBlcmlhbXB1bGxhcnkgQWRlbm9jYXJjaW5vbWEqKgoKaHR0cHM6Ly9qb3VybmFscy5zYWdlcHViLmNvbS9kb2kvYWJzLzEwLjExNzcvMTA2Njg5NjkxOTgzNzYwNgoKCgotLS0KCmBgYHtyIHp6eiAzMDYwNDA0MiwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA2MDQwNDIgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA2MDQwNDInLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA2MDQwNDIgPC0gcGFzdGUwKFBNSURfMzA2MDQwNDIkam91cm5hbCwnICcsIFBNSURfMzA2MDQwNDIkeWVhciwgJyAnLCBQTUlEXzMwNjA0MDQyJG1vbnRoLCc7JywgUE1JRF8zMDYwNDA0MiR2b2x1bWUsJygnLCBQTUlEXzMwNjA0MDQyJG51bWJlciwnKTonLCBQTUlEXzMwNjA0MDQyJHBhZ2VzKQoKUHViTWVkXzMwNjA0MDQyIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA2MDQwNDIkZXByaW50KQoKZG9pXzMwNjA0MDQyIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA2MDQwNDIkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA2MDQwNDIgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA2MDQwNDIkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDYwNDA0MiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDYwNDA0MiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA2MDQwNDIgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDYwNDA0MiR0aXRsZSAsICIgUE1JRDogMzA2MDQwNDIgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNjA0MDQyJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA2MDQwNDJgKgoKYHIgUHViTWVkXzMwNjA0MDQyYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA2MDQwNDJgCgpgciBQTUlEXzMwNjA0MDQyJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA2MDQwNDJgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA2MDQwNDJgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDYwNDA0MmAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTQyMDk5LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDk0MjA5OSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk0MjA5OScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk0MjA5OSA8LSBwYXN0ZTAoUE1JRF8zMDk0MjA5OSRqb3VybmFsLCcgJywgUE1JRF8zMDk0MjA5OSR5ZWFyLCAnICcsIFBNSURfMzA5NDIwOTkkbW9udGgsJzsnLCBQTUlEXzMwOTQyMDk5JHZvbHVtZSwnKCcsIFBNSURfMzA5NDIwOTkkbnVtYmVyLCcpOicsIFBNSURfMzA5NDIwOTkkcGFnZXMpCgpQdWJNZWRfMzA5NDIwOTkgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk0MjA5OSRlcHJpbnQpCgpkb2lfMzA5NDIwOTkgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk0MjA5OSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk0MjA5OSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk0MjA5OSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTQyMDk5IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTQyMDk5JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk0MjA5OSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTQyMDk5JHRpdGxlICwgIiBQTUlEOiAzMDk0MjA5OSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5NDIwOTkkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk0MjA5OWAqCgpgciBQdWJNZWRfMzA5NDIwOTlgCgpgciBhZGR0aGlzX2lubGluZV8zMDk0MjA5OWAKCmByIFBNSURfMzA5NDIwOTkkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk0MjA5OWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk0MjA5OWAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTQyMDk5YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciAzMDgzNzY4MSwgaW5jbHVkZT1GQUxTRX0KCmFydGljbGVzIDwtIHJlYWRSRFMoJ2FydGljbGVzLnJkcycpCgoKUE1JRF8zMDgzNzY4MSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDgzNzY4MScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDgzNzY4MSA8LSBwYXN0ZTAoUE1JRF8zMDgzNzY4MSRqb3VybmFsLCcgJywgUE1JRF8zMDgzNzY4MSR5ZWFyLCAnICcsIFBNSURfMzA4Mzc2ODEkbW9udGgsJzsnLCBQTUlEXzMwODM3NjgxJHZvbHVtZSwnKCcsIFBNSURfMzA4Mzc2ODEkbnVtYmVyLCcpOicsIFBNSURfMzA4Mzc2ODEkcGFnZXMpCgpQdWJNZWRfMzA4Mzc2ODEgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDgzNzY4MSRlcHJpbnQpCgpkb2lfMzA4Mzc2ODEgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDgzNzY4MSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDgzNzY4MSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDgzNzY4MSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwODM3NjgxIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwODM3NjgxJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDgzNzY4MSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwODM3NjgxJHRpdGxlICwgIiBQTUlEOiAzMDgzNzY4MSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8zMDgzNzY4MSwKUE1JRCA9IFBNSURfMzA4Mzc2ODEkZXByaW50LApUaXRsZSA9IFBNSURfMzA4Mzc2ODEkdGl0bGUsCiMgQXV0aG9yID0gUE1JRF8zMDgzNzY4MSRhdXRob3IsCkFic3RyYWN0ID0gUE1JRF8zMDgzNzY4MSRhYnN0cmFjdCwKSm91cm5hbCA9IFBNSURfMzA4Mzc2ODEkam91cm5hbCwKWWVhciA9IFBNSURfMzA4Mzc2ODEkeWVhciwKTW9udGggPSBQTUlEXzMwODM3NjgxJG1vbnRoLApWb2x1bWUgPSBQTUlEXzMwODM3NjgxJHZvbHVtZSwKTnVtYmVyID0gUE1JRF8zMDgzNzY4MSRudW1iZXIsClBhZ2VzID0gUE1JRF8zMDgzNzY4MSRwYWdlcywKUHViTWVkTGluayA9IHBhc3RlMCgnaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvP3Rlcm09JywgUE1JRF8zMDgzNzY4MSRlcHJpbnQpLApEb2lOdW1iZXIgPSBQTUlEXzMwODM3NjgxJGRvaSwKRG9pTGluayA9IHBhc3RlMCgnaHR0cHM6Ly9kb2kub3JnLycsIFBNSURfMzA4Mzc2ODEkZG9pKSwKTGFuZ3VhZ2UgPSBQTUlEXzMwODM3NjgxJGxhbmd1YWdlLApJU1NOID0gUE1JRF8zMDgzNzY4MSRpc3NuCikgJT4lCgp1bmlxdWUoKQoKClN5cy5zbGVlcCgxKQoKc2F2ZVJEUyhhcnRpY2xlcywgJ2FydGljbGVzLnJkcycpCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDgzNzY4MSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwODM3NjgxYCoKCmByIFB1Yk1lZF8zMDgzNzY4MWAKCmByIGFkZHRoaXNfaW5saW5lXzMwODM3NjgxYAoKYHIgUE1JRF8zMDgzNzY4MSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwODM3NjgxYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwODM3NjgxYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA4Mzc2ODFgCgo8L2RldGFpbHM+CgotLS0KCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgojIyMjIFN0YWdpbmcKCkFtcHVsbGEgb2YgVmF0ZXIgVE5NIHN0YWdpbmcsIE1hcmdpbnMsIFN1cnZpdmFsCgpgYGB7ciBBbXB1bGxhIG9mIFZhdGVyIFROTSBzdGFnaW5nIE1hcmdpbnMgU3Vydml2YWwsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKLS0tCgotICoqVGhlIFByb2dub3N0aWMgUmVsZXZhbmNlIG9mIHRoZSBOZXcgOHRoIEVkaXRpb24gb2YgdGhlIFVuaW9uIGZvciBJbnRlcm5hdGlvbmFsIENhbmNlciBDb250cm9sIENsYXNzaWZpY2F0aW9uIG9mIFROTSBTdGFnaW5nIGZvciBBbXB1bGxhIG9mIFZhdGVyIENhcmNpbm9tYSoqCgpodHRwczovL3d3dy5zZW1hbnRpY3NjaG9sYXIub3JnL3BhcGVyL1RoZS1Qcm9nbm9zdGljLVJlbGV2YW5jZS1vZi10aGUtTmV3LTh0aC1FZGl0aW9uLW9mLUltYW11cmEtWWFtYW1vdG8vNTM4N2U0NGQ0MDcyZjhjMmZkNTQ2ZGMwYjllNWU0NmQ1MDE3MjFhNQoKLS0tCgotICoqU3RhZ2luZyBmb3IgQW1wdWxsYXJ5IENhcmNpbm9tYTogSXMgTGVzcyBBY3R1YWxseSBNb3JlPyoqCgpodHRwczovL3d3dy5zZW1hbnRpY3NjaG9sYXIub3JnL3BhcGVyL1N0YWdpbmctZm9yLUFtcHVsbGFyeS1DYXJjaW5vbWElM0EtSXMtTGVzcy1BY3R1YWxseS1DbG95ZC80NmYzZTg4ZmY1Y2ZhNmY1OTg5YmU4MDQ5MjBkZWM5YmZjODcyNjk5CgoKLS0tCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKCiMjIyBOZXVyb2VuZG9jcmluZQoKCi0tLQoKIyMjIyBQYW5ORVQKClBhbk5FVCwgUGFuY3JlYXRpYyBOZXVyb2VuZG9jcmluZSBUdW1vcnMgYW5kIHJlbGF0ZWQgbmV1cm9lbmRvY3JpbmUgbmVvcGxhc21zCgpgYGB7ciBTIFBhbk5FVCBOZXVyb2VuZG9jcmluZSwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKLS0tCgpgYGB7ciB6enogMzA5NDYyNDEsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTQ2MjQxIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTQ2MjQxJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTQ2MjQxIDwtIHBhc3RlMChQTUlEXzMwOTQ2MjQxJGpvdXJuYWwsJyAnLCBQTUlEXzMwOTQ2MjQxJHllYXIsICcgJywgUE1JRF8zMDk0NjI0MSRtb250aCwnOycsIFBNSURfMzA5NDYyNDEkdm9sdW1lLCcoJywgUE1JRF8zMDk0NjI0MSRudW1iZXIsJyk6JywgUE1JRF8zMDk0NjI0MSRwYWdlcykKClB1Yk1lZF8zMDk0NjI0MSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTQ2MjQxJGVwcmludCkKCmRvaV8zMDk0NjI0MSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTQ2MjQxJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTQ2MjQxIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTQ2MjQxJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NDYyNDEgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NDYyNDEkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTQ2MjQxIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NDYyNDEkdGl0bGUgLCAiIFBNSUQ6IDMwOTQ2MjQxICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk0NjI0MSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTQ2MjQxYCoKCmByIFB1Yk1lZF8zMDk0NjI0MWAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTQ2MjQxYAoKYHIgUE1JRF8zMDk0NjI0MSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTQ2MjQxYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTQ2MjQxYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5NDYyNDFgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIHp6eiAzMDk0NjIzNCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA5NDYyMzQgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5NDYyMzQnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5NDYyMzQgPC0gcGFzdGUwKFBNSURfMzA5NDYyMzQkam91cm5hbCwnICcsIFBNSURfMzA5NDYyMzQkeWVhciwgJyAnLCBQTUlEXzMwOTQ2MjM0JG1vbnRoLCc7JywgUE1JRF8zMDk0NjIzNCR2b2x1bWUsJygnLCBQTUlEXzMwOTQ2MjM0JG51bWJlciwnKTonLCBQTUlEXzMwOTQ2MjM0JHBhZ2VzKQoKUHViTWVkXzMwOTQ2MjM0IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5NDYyMzQkZXByaW50KQoKZG9pXzMwOTQ2MjM0IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5NDYyMzQkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5NDYyMzQgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5NDYyMzQkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk0NjIzNCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk0NjIzNCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5NDYyMzQgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk0NjIzNCR0aXRsZSAsICIgUE1JRDogMzA5NDYyMzQgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTQ2MjM0JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NDYyMzRgKgoKYHIgUHViTWVkXzMwOTQ2MjM0YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NDYyMzRgCgpgciBQTUlEXzMwOTQ2MjM0JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NDYyMzRgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NDYyMzRgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk0NjIzNGAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTc1MTU3LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDk3NTE1NyA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk3NTE1NycsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk3NTE1NyA8LSBwYXN0ZTAoUE1JRF8zMDk3NTE1NyRqb3VybmFsLCcgJywgUE1JRF8zMDk3NTE1NyR5ZWFyLCAnICcsIFBNSURfMzA5NzUxNTckbW9udGgsJzsnLCBQTUlEXzMwOTc1MTU3JHZvbHVtZSwnKCcsIFBNSURfMzA5NzUxNTckbnVtYmVyLCcpOicsIFBNSURfMzA5NzUxNTckcGFnZXMpCgpQdWJNZWRfMzA5NzUxNTcgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk3NTE1NyRlcHJpbnQpCgpkb2lfMzA5NzUxNTcgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk3NTE1NyRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk3NTE1NyA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk3NTE1NyRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTc1MTU3IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTc1MTU3JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk3NTE1NyA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTc1MTU3JHRpdGxlICwgIiBQTUlEOiAzMDk3NTE1NyAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5NzUxNTckdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk3NTE1N2AqCgpgciBQdWJNZWRfMzA5NzUxNTdgCgpgciBhZGR0aGlzX2lubGluZV8zMDk3NTE1N2AKCmByIFBNSURfMzA5NzUxNTckYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk3NTE1N2AgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk3NTE1N2AKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTc1MTU3YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciAzMTAyMDk4OCwgaW5jbHVkZT1GQUxTRX0KCmFydGljbGVzIDwtIHJlYWRSRFMoJ2FydGljbGVzLnJkcycpCgoKUE1JRF8zMTAyMDk4OCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMTAyMDk4OCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMTAyMDk4OCA8LSBwYXN0ZTAoUE1JRF8zMTAyMDk4OCRqb3VybmFsLCcgJywgUE1JRF8zMTAyMDk4OCR5ZWFyLCAnICcsIFBNSURfMzEwMjA5ODgkbW9udGgsJzsnLCBQTUlEXzMxMDIwOTg4JHZvbHVtZSwnKCcsIFBNSURfMzEwMjA5ODgkbnVtYmVyLCcpOicsIFBNSURfMzEwMjA5ODgkcGFnZXMpCgpQdWJNZWRfMzEwMjA5ODggPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMTAyMDk4OCRlcHJpbnQpCgpkb2lfMzEwMjA5ODggPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMTAyMDk4OCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMTAyMDk4OCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMTAyMDk4OCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMxMDIwOTg4IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMxMDIwOTg4JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMTAyMDk4OCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMxMDIwOTg4JHRpdGxlICwgIiBQTUlEOiAzMTAyMDk4OCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8zMTAyMDk4OCwKUE1JRCA9IFBNSURfMzEwMjA5ODgkZXByaW50LApUaXRsZSA9IFBNSURfMzEwMjA5ODgkdGl0bGUsCiMgQXV0aG9yID0gUE1JRF8zMTAyMDk4OCRhdXRob3IsCkFic3RyYWN0ID0gUE1JRF8zMTAyMDk4OCRhYnN0cmFjdCwKSm91cm5hbCA9IFBNSURfMzEwMjA5ODgkam91cm5hbCwKWWVhciA9IFBNSURfMzEwMjA5ODgkeWVhciwKTW9udGggPSBQTUlEXzMxMDIwOTg4JG1vbnRoLAojIFZvbHVtZSA9IFBNSURfMzEwMjA5ODgkdm9sdW1lLAojIE51bWJlciA9IFBNSURfMzEwMjA5ODgkbnVtYmVyLAojIFBhZ2VzID0gUE1JRF8zMTAyMDk4OCRwYWdlcywKUHViTWVkTGluayA9IHBhc3RlMCgnaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvP3Rlcm09JywgUE1JRF8zMTAyMDk4OCRlcHJpbnQpLApEb2lOdW1iZXIgPSBQTUlEXzMxMDIwOTg4JGRvaSwKRG9pTGluayA9IHBhc3RlMCgnaHR0cHM6Ly9kb2kub3JnLycsIFBNSURfMzEwMjA5ODgkZG9pKSwKTGFuZ3VhZ2UgPSBQTUlEXzMxMDIwOTg4JGxhbmd1YWdlLApJU1NOID0gUE1JRF8zMTAyMDk4OCRpc3NuCikgJT4lCgp1bmlxdWUoKQoKClN5cy5zbGVlcCgxKQoKc2F2ZVJEUyhhcnRpY2xlcywgJ2FydGljbGVzLnJkcycpCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMTAyMDk4OCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMxMDIwOTg4YCoKCmByIFB1Yk1lZF8zMTAyMDk4OGAKCmByIGFkZHRoaXNfaW5saW5lXzMxMDIwOTg4YAoKYHIgUE1JRF8zMTAyMDk4OCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMxMDIwOTg4YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMxMDIwOTg4YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzEwMjA5ODhgCgo8L2RldGFpbHM+CgotLS0KCgotICoqVGhlIFBhbmNyZWFzIGFzIGEgU2l0ZSBvZiBNZXRhc3Rhc2lzIG9yIFNlY29uZCBQcmltYXJ5IGluIFBhdGllbnRzIHdpdGggU21hbGwgQm93ZWwgTmV1cm9lbmRvY3JpbmUgVHVtb3JzKioKCmh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vYXJ0aWNsZS8xMC4xMjQ1L3MxMDQzNC0wMTktMDczNzAtMwoKLS0tCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgoKCiMjIyMgTWljcm9lbnZpcm9ubWVudCAKClR1bW9yIFN0cm9tYSBJbnRlcmFjdGlvbnMsIE1pY3JvZW52aXJvbm1lbnQsIEluZmxhbW1hdG9yeSBSZXNwb25zZQoKYGBge3IgUyBUdW1vciBTdHJvbWEgSW50ZXJhY3Rpb25zIE1pY3JvZW52aXJvbm1lbnQgSW5mbGFtbWF0b3J5IFJlc3BvbnNlLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgoKLS0tCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKCiMjIyMgU3RhZ2luZwoKUGFuTkVUIFROTSBzdGFnaW5nLCBNYXJnaW5zLCBTdXJ2aXZhbAoKYGBge3IgUGFuTkVUIFROTSBzdGFnaW5nIE1hcmdpbnMgU3Vydml2YWwsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKLS0tCgpgYGB7ciAzMDk5OTcxOSwgaW5jbHVkZT1GQUxTRX0KYXJ0aWNsZXMgPC0gcmVhZFJEUygnYXJ0aWNsZXMucmRzJykKCgpQTUlEXzMwOTk5NzE5IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTk5NzE5JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTk5NzE5IDwtIHBhc3RlMChQTUlEXzMwOTk5NzE5JGpvdXJuYWwsJyAnLCBQTUlEXzMwOTk5NzE5JHllYXIsICcgJywgUE1JRF8zMDk5OTcxOSRtb250aCwnOycsIFBNSURfMzA5OTk3MTkkdm9sdW1lLCcoJywgUE1JRF8zMDk5OTcxOSRudW1iZXIsJyk6JywgUE1JRF8zMDk5OTcxOSRwYWdlcykKClB1Yk1lZF8zMDk5OTcxOSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTk5NzE5JGVwcmludCkKCmRvaV8zMDk5OTcxOSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTk5NzE5JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTk5NzE5IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTk5NzE5JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5OTk3MTkgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5OTk3MTkkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTk5NzE5IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5OTk3MTkkdGl0bGUgLCAiIFBNSUQ6IDMwOTk5NzE5ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgphcnRpY2xlcyA8LSBhcnRpY2xlcyAlPiUKCmFkZF9yb3coCgpBcnRpY2xlQ2l0YXRpb24gPSBQTUlEXzMwOTk5NzE5LApQTUlEID0gUE1JRF8zMDk5OTcxOSRlcHJpbnQsClRpdGxlID0gUE1JRF8zMDk5OTcxOSR0aXRsZSwKQXV0aG9yID0gUE1JRF8zMDk5OTcxOSRhdXRob3IsCkFic3RyYWN0ID0gUE1JRF8zMDk5OTcxOSRhYnN0cmFjdCwKSm91cm5hbCA9IFBNSURfMzA5OTk3MTkkam91cm5hbCwKWWVhciA9IFBNSURfMzA5OTk3MTkkeWVhciwKTW9udGggPSBQTUlEXzMwOTk5NzE5JG1vbnRoLAojIFZvbHVtZSA9IFBNSURfMzA5OTk3MTkkdm9sdW1lLAojIE51bWJlciA9IFBNSURfMzA5OTk3MTkkbnVtYmVyLAojIFBhZ2VzID0gUE1JRF8zMDk5OTcxOSRwYWdlcywKUHViTWVkTGluayA9IHBhc3RlMCgnaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvP3Rlcm09JywgUE1JRF8zMDk5OTcxOSRlcHJpbnQpLApEb2lOdW1iZXIgPSBQTUlEXzMwOTk5NzE5JGRvaSwKRG9pTGluayA9IHBhc3RlMCgnaHR0cHM6Ly9kb2kub3JnLycsIFBNSURfMzA5OTk3MTkkZG9pKSwKTGFuZ3VhZ2UgPSBQTUlEXzMwOTk5NzE5JGxhbmd1YWdlLApJU1NOID0gUE1JRF8zMDk5OTcxOSRpc3NuCikgJT4lCgp1bmlxdWUoKQoKClN5cy5zbGVlcCgxKQoKc2F2ZVJEUyhhcnRpY2xlcywgJ2FydGljbGVzLnJkcycpCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk5OTcxOSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTk5NzE5YCoKCmByIFB1Yk1lZF8zMDk5OTcxOWAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTk5NzE5YAoKYHIgUE1JRF8zMDk5OTcxOSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTk5NzE5YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTk5NzE5YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5OTk3MTlgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIDMxMDA0Mjk1LCBpbmNsdWRlPUZBTFNFfQphcnRpY2xlcyA8LSByZWFkUkRTKCdhcnRpY2xlcy5yZHMnKQoKClBNSURfMzEwMDQyOTUgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzEwMDQyOTUnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzEwMDQyOTUgPC0gcGFzdGUwKFBNSURfMzEwMDQyOTUkam91cm5hbCwnICcsIFBNSURfMzEwMDQyOTUkeWVhciwgJyAnLCBQTUlEXzMxMDA0Mjk1JG1vbnRoLCc7JywgUE1JRF8zMTAwNDI5NSR2b2x1bWUsJygnLCBQTUlEXzMxMDA0Mjk1JG51bWJlciwnKTonLCBQTUlEXzMxMDA0Mjk1JHBhZ2VzKQoKUHViTWVkXzMxMDA0Mjk1IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzEwMDQyOTUkZXByaW50KQoKZG9pXzMxMDA0Mjk1IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzEwMDQyOTUkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzEwMDQyOTUgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzEwMDQyOTUkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMTAwNDI5NSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMTAwNDI5NSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzEwMDQyOTUgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMTAwNDI5NSR0aXRsZSAsICIgUE1JRDogMzEwMDQyOTUgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmFydGljbGVzIDwtIGFydGljbGVzICU+JQoKYWRkX3JvdygKCkFydGljbGVDaXRhdGlvbiA9IFBNSURfMzEwMDQyOTUsClBNSUQgPSBQTUlEXzMxMDA0Mjk1JGVwcmludCwKVGl0bGUgPSBQTUlEXzMxMDA0Mjk1JHRpdGxlLAojIEF1dGhvciA9IFBNSURfMzEwMDQyOTUkYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzEwMDQyOTUkYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMxMDA0Mjk1JGpvdXJuYWwsClllYXIgPSBQTUlEXzMxMDA0Mjk1JHllYXIsCk1vbnRoID0gUE1JRF8zMTAwNDI5NSRtb250aCwKIyBWb2x1bWUgPSBQTUlEXzMxMDA0Mjk1JHZvbHVtZSwKIyBOdW1iZXIgPSBQTUlEXzMxMDA0Mjk1JG51bWJlciwKIyBQYWdlcyA9IFBNSURfMzEwMDQyOTUkcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzEwMDQyOTUkZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMTAwNDI5NSRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMxMDA0Mjk1JGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMTAwNDI5NSRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzEwMDQyOTUkaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzEwMDQyOTUkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMTAwNDI5NWAqCgpgciBQdWJNZWRfMzEwMDQyOTVgCgpgciBhZGR0aGlzX2lubGluZV8zMTAwNDI5NWAKCmByIFBNSURfMzEwMDQyOTUkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMTAwNDI5NWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMTAwNDI5NWAKCmByIGFsdG1ldHJpY0JhZGdlXzMxMDA0Mjk1YAoKPC9kZXRhaWxzPgoKLS0tCgoKCgoKCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgoKCgoKCgojIyBDeXRvcGF0aG9sb2d5IHsudGFic2V0fQoKCi0tLQoKIyMjIFBhbmNyZWFzCgpgYGB7ciBDIFBhbmNyZWFzLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgotLS0KCmBgYHtyIHp6eiAzMDgwNTcxMCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA4MDU3MTAgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA4MDU3MTAnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA4MDU3MTAgPC0gcGFzdGUwKFBNSURfMzA4MDU3MTAkam91cm5hbCwnICcsIFBNSURfMzA4MDU3MTAkeWVhciwgJyAnLCBQTUlEXzMwODA1NzEwJG1vbnRoLCc7JywgUE1JRF8zMDgwNTcxMCR2b2x1bWUsJygnLCBQTUlEXzMwODA1NzEwJG51bWJlciwnKTonLCBQTUlEXzMwODA1NzEwJHBhZ2VzKQoKUHViTWVkXzMwODA1NzEwIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA4MDU3MTAkZXByaW50KQoKZG9pXzMwODA1NzEwIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA4MDU3MTAkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA4MDU3MTAgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA4MDU3MTAkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDgwNTcxMCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDgwNTcxMCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA4MDU3MTAgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDgwNTcxMCR0aXRsZSAsICIgUE1JRDogMzA4MDU3MTAgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwODA1NzEwJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA4MDU3MTBgKgoKYHIgUHViTWVkXzMwODA1NzEwYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA4MDU3MTBgCgpgciBQTUlEXzMwODA1NzEwJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA4MDU3MTBgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA4MDU3MTBgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDgwNTcxMGAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTUzMTk0LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDk1MzE5NCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk1MzE5NCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk1MzE5NCA8LSBwYXN0ZTAoUE1JRF8zMDk1MzE5NCRqb3VybmFsLCcgJywgUE1JRF8zMDk1MzE5NCR5ZWFyLCAnICcsIFBNSURfMzA5NTMxOTQkbW9udGgsJzsnLCBQTUlEXzMwOTUzMTk0JHZvbHVtZSwnKCcsIFBNSURfMzA5NTMxOTQkbnVtYmVyLCcpOicsIFBNSURfMzA5NTMxOTQkcGFnZXMpCgpQdWJNZWRfMzA5NTMxOTQgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk1MzE5NCRlcHJpbnQpCgpkb2lfMzA5NTMxOTQgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk1MzE5NCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk1MzE5NCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk1MzE5NCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTUzMTk0IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTUzMTk0JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk1MzE5NCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTUzMTk0JHRpdGxlICwgIiBQTUlEOiAzMDk1MzE5NCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5NTMxOTQkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk1MzE5NGAqCgpgciBQdWJNZWRfMzA5NTMxOTRgCgpgciBhZGR0aGlzX2lubGluZV8zMDk1MzE5NGAKCmByIFBNSURfMzA5NTMxOTQkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk1MzE5NGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk1MzE5NGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTUzMTk0YAoKPC9kZXRhaWxzPgoKLS0tCgoKCmBgYHtyIHp6eiAzMDk0NjIzMiwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA5NDYyMzIgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5NDYyMzInLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5NDYyMzIgPC0gcGFzdGUwKFBNSURfMzA5NDYyMzIkam91cm5hbCwnICcsIFBNSURfMzA5NDYyMzIkeWVhciwgJyAnLCBQTUlEXzMwOTQ2MjMyJG1vbnRoLCc7JywgUE1JRF8zMDk0NjIzMiR2b2x1bWUsJygnLCBQTUlEXzMwOTQ2MjMyJG51bWJlciwnKTonLCBQTUlEXzMwOTQ2MjMyJHBhZ2VzKQoKUHViTWVkXzMwOTQ2MjMyIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5NDYyMzIkZXByaW50KQoKZG9pXzMwOTQ2MjMyIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5NDYyMzIkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5NDYyMzIgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5NDYyMzIkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk0NjIzMiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk0NjIzMiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5NDYyMzIgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk0NjIzMiR0aXRsZSAsICIgUE1JRDogMzA5NDYyMzIgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTQ2MjMyJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NDYyMzJgKgoKYHIgUHViTWVkXzMwOTQ2MjMyYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NDYyMzJgCgpgciBQTUlEXzMwOTQ2MjMyJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NDYyMzJgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NDYyMzJgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk0NjIzMmAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTI5Mjg1LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDkyOTI4NSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDkyOTI4NScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDkyOTI4NSA8LSBwYXN0ZTAoUE1JRF8zMDkyOTI4NSRqb3VybmFsLCcgJywgUE1JRF8zMDkyOTI4NSR5ZWFyLCAnICcsIFBNSURfMzA5MjkyODUkbW9udGgsJzsnLCBQTUlEXzMwOTI5Mjg1JHZvbHVtZSwnKCcsIFBNSURfMzA5MjkyODUkbnVtYmVyLCcpOicsIFBNSURfMzA5MjkyODUkcGFnZXMpCgpQdWJNZWRfMzA5MjkyODUgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDkyOTI4NSRlcHJpbnQpCgpkb2lfMzA5MjkyODUgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDkyOTI4NSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDkyOTI4NSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDkyOTI4NSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTI5Mjg1IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTI5Mjg1JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDkyOTI4NSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTI5Mjg1JHRpdGxlICwgIiBQTUlEOiAzMDkyOTI4NSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5MjkyODUkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDkyOTI4NWAqCgpgciBQdWJNZWRfMzA5MjkyODVgCgpgciBhZGR0aGlzX2lubGluZV8zMDkyOTI4NWAKCmByIFBNSURfMzA5MjkyODUkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDkyOTI4NWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDkyOTI4NWAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTI5Mjg1YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciB6enogMzA5NzAzNTAsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTcwMzUwIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTcwMzUwJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTcwMzUwIDwtIHBhc3RlMChQTUlEXzMwOTcwMzUwJGpvdXJuYWwsJyAnLCBQTUlEXzMwOTcwMzUwJHllYXIsICcgJywgUE1JRF8zMDk3MDM1MCRtb250aCwnOycsIFBNSURfMzA5NzAzNTAkdm9sdW1lLCcoJywgUE1JRF8zMDk3MDM1MCRudW1iZXIsJyk6JywgUE1JRF8zMDk3MDM1MCRwYWdlcykKClB1Yk1lZF8zMDk3MDM1MCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTcwMzUwJGVwcmludCkKCmRvaV8zMDk3MDM1MCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTcwMzUwJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTcwMzUwIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTcwMzUwJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NzAzNTAgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NzAzNTAkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTcwMzUwIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NzAzNTAkdGl0bGUgLCAiIFBNSUQ6IDMwOTcwMzUwICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk3MDM1MCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTcwMzUwYCoKCmByIFB1Yk1lZF8zMDk3MDM1MGAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTcwMzUwYAoKYHIgUE1JRF8zMDk3MDM1MCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTcwMzUwYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTcwMzUwYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5NzAzNTBgCgo8L2RldGFpbHM+CgotLS0KCgoKCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKCgoKIyMjIEJpbGUgRHVjdHMKCmBgYHtyIEMgQmlsZSBEdWN0cywgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKLS0tCgotICoqSW50ZWdyYXRpbmcgbmV4dC1nZW5lcmF0aW9uIHNlcXVlbmNpbmcgdG8gZW5kb3Njb3BpYyByZXRyb2dyYWRlIGNob2xhbmdpb3BhbmNyZWF0b2dyYXBoeSAoRVJDUCktb2J0YWluZWQgYmlsaWFyeSBzcGVjaW1lbnMgaW1wcm92ZXMgdGhlIGRldGVjdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBwYXRpZW50cyB3aXRoIG1hbGlnbmFudCBiaWxlIGR1Y3Qgc3RyaWN0dXJlcyoqCgpodHRwczovL2d1dC5ibWouY29tL2NvbnRlbnQvZWFybHkvMjAxOS8wNC8xMC9ndXRqbmwtMjAxOC0zMTc4MTcuYWJzdHJhY3QKCgotLS0KCgoKCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCiMjIyBHYWxsYmxhZGRlcgoKYGBge3IgQyBHYWxsYmxhZGRlciwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKCgoKCgoKCgoKCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKIyMjIE5ldXJvZW5kb2NyaW5lCgpgYGB7ciBDIE5ldXJvZW5kb2NyaW5lLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgotLS0KCmBgYHtyIHp6eiAzMDkxMzA4OSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA5MTMwODkgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5MTMwODknLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5MTMwODkgPC0gcGFzdGUwKFBNSURfMzA5MTMwODkkam91cm5hbCwnICcsIFBNSURfMzA5MTMwODkkeWVhciwgJyAnLCBQTUlEXzMwOTEzMDg5JG1vbnRoLCc7JywgUE1JRF8zMDkxMzA4OSR2b2x1bWUsJygnLCBQTUlEXzMwOTEzMDg5JG51bWJlciwnKTonLCBQTUlEXzMwOTEzMDg5JHBhZ2VzKQoKUHViTWVkXzMwOTEzMDg5IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5MTMwODkkZXByaW50KQoKZG9pXzMwOTEzMDg5IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5MTMwODkkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5MTMwODkgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5MTMwODkkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDkxMzA4OSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDkxMzA4OSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5MTMwODkgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDkxMzA4OSR0aXRsZSAsICIgUE1JRDogMzA5MTMwODkgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTEzMDg5JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5MTMwODlgKgoKYHIgUHViTWVkXzMwOTEzMDg5YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5MTMwODlgCgpgciBQTUlEXzMwOTEzMDg5JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5MTMwODlgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5MTMwODlgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDkxMzA4OWAKCjwvZGV0YWlscz4KCgoKCgoKLS0tCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKIyMgTW9sZWN1bGFyIFBhdGhvbG9neSB7LnRhYnNldH0KCi0tLQoKCiMjIyBQYW5jcmVhcwoKYGBge3IgTSBQYW5jcmVhcywgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgotLS0KCi0gKipUaGUgR2VuZXRpYyBCYXNpcyBvZiBUcmFuc2NyaXB0aW9uYWwgYW5kIFNwYXRpYWwgSGV0ZXJvZ2VuZWl0eSBvZiBTcXVhbW91cyBGZWF0dXJlcyBpbiBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSoqCgpodHRwczovL3d3dy5zZW1hbnRpY3NjaG9sYXIub3JnL3BhcGVyL1RoZS1HZW5ldGljLUJhc2lzLW9mLVRyYW5zY3JpcHRpb25hbC1hbmQtU3BhdGlhbC1vZi1IYXlhc2hpLUZhbi8zOTBlMGJiMzBiOTg0N2ViNjJjNzFkM2YwNzBjMWVjMzNmNGU0OTQ4CgotLS0KCmBgYHtyIHp6eiAzMDk1NTg4NCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA5NTU4ODQgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5NTU4ODQnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5NTU4ODQgPC0gcGFzdGUwKFBNSURfMzA5NTU4ODQkam91cm5hbCwnICcsIFBNSURfMzA5NTU4ODQkeWVhciwgJyAnLCBQTUlEXzMwOTU1ODg0JG1vbnRoLCc7JywgUE1JRF8zMDk1NTg4NCR2b2x1bWUsJygnLCBQTUlEXzMwOTU1ODg0JG51bWJlciwnKTonLCBQTUlEXzMwOTU1ODg0JHBhZ2VzKQoKUHViTWVkXzMwOTU1ODg0IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5NTU4ODQkZXByaW50KQoKZG9pXzMwOTU1ODg0IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5NTU4ODQkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5NTU4ODQgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5NTU4ODQkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk1NTg4NCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk1NTg4NCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5NTU4ODQgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk1NTg4NCR0aXRsZSAsICIgUE1JRDogMzA5NTU4ODQgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTU1ODg0JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NTU4ODRgKgoKYHIgUHViTWVkXzMwOTU1ODg0YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NTU4ODRgCgpgciBQTUlEXzMwOTU1ODg0JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NTU4ODRgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NTU4ODRgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk1NTg4NGAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTE4NDAwLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDkxODQwMCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDkxODQwMCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDkxODQwMCA8LSBwYXN0ZTAoUE1JRF8zMDkxODQwMCRqb3VybmFsLCcgJywgUE1JRF8zMDkxODQwMCR5ZWFyLCAnICcsIFBNSURfMzA5MTg0MDAkbW9udGgsJzsnLCBQTUlEXzMwOTE4NDAwJHZvbHVtZSwnKCcsIFBNSURfMzA5MTg0MDAkbnVtYmVyLCcpOicsIFBNSURfMzA5MTg0MDAkcGFnZXMpCgpQdWJNZWRfMzA5MTg0MDAgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDkxODQwMCRlcHJpbnQpCgpkb2lfMzA5MTg0MDAgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDkxODQwMCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDkxODQwMCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDkxODQwMCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTE4NDAwIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTE4NDAwJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDkxODQwMCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTE4NDAwJHRpdGxlICwgIiBQTUlEOiAzMDkxODQwMCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5MTg0MDAkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDkxODQwMGAqCgpgciBQdWJNZWRfMzA5MTg0MDBgCgpgciBhZGR0aGlzX2lubGluZV8zMDkxODQwMGAKCmByIFBNSURfMzA5MTg0MDAkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDkxODQwMGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDkxODQwMGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTE4NDAwYAoKPC9kZXRhaWxzPgoKLS0tCgotICoqQSBNdWx0aXNjYWxlIE1hcCBvZiB0aGUgU3RlbSBDZWxsIFN0YXRlIGluIFBhbmNyZWF0aWMgQWRlbm9jYXJjaW5vbWEqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDA5Mjg2NzQxOTMwMjcyNwoKLS0tCgotICoqU3luZGVjYW4gMSBpcyBhIGNyaXRpY2FsIG1lZGlhdG9yIG9mIG1hY3JvcGlub2N5dG9zaXMgaW4gcGFuY3JlYXRpYyBjYW5jZXIqKgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDE1ODYtMDE5LTEwNjItMQoKLS0tCgpgYGB7ciB6enogMzA5NTQ5NTIsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTU0OTUyIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTU0OTUyJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTU0OTUyIDwtIHBhc3RlMChQTUlEXzMwOTU0OTUyJGpvdXJuYWwsJyAnLCBQTUlEXzMwOTU0OTUyJHllYXIsICcgJywgUE1JRF8zMDk1NDk1MiRtb250aCwnOycsIFBNSURfMzA5NTQ5NTIkdm9sdW1lLCcoJywgUE1JRF8zMDk1NDk1MiRudW1iZXIsJyk6JywgUE1JRF8zMDk1NDk1MiRwYWdlcykKClB1Yk1lZF8zMDk1NDk1MiA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTU0OTUyJGVwcmludCkKCmRvaV8zMDk1NDk1MiA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTU0OTUyJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTU0OTUyIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTU0OTUyJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NTQ5NTIgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NTQ5NTIkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTU0OTUyIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NTQ5NTIkdGl0bGUgLCAiIFBNSUQ6IDMwOTU0OTUyICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk1NDk1MiR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTU0OTUyYCoKCmByIFB1Yk1lZF8zMDk1NDk1MmAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTU0OTUyYAoKYHIgUE1JRF8zMDk1NDk1MiRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTU0OTUyYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTU0OTUyYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5NTQ5NTJgCgo8L2RldGFpbHM+CgoKLS0tCgpgYGB7ciB6enogMzA5NDQ2NTAsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTQ0NjUwIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTQ0NjUwJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTQ0NjUwIDwtIHBhc3RlMChQTUlEXzMwOTQ0NjUwJGpvdXJuYWwsJyAnLCBQTUlEXzMwOTQ0NjUwJHllYXIsICcgJywgUE1JRF8zMDk0NDY1MCRtb250aCwnOycsIFBNSURfMzA5NDQ2NTAkdm9sdW1lLCcoJywgUE1JRF8zMDk0NDY1MCRudW1iZXIsJyk6JywgUE1JRF8zMDk0NDY1MCRwYWdlcykKClB1Yk1lZF8zMDk0NDY1MCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTQ0NjUwJGVwcmludCkKCmRvaV8zMDk0NDY1MCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTQ0NjUwJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTQ0NjUwIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTQ0NjUwJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NDQ2NTAgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NDQ2NTAkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTQ0NjUwIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NDQ2NTAkdGl0bGUgLCAiIFBNSUQ6IDMwOTQ0NjUwICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk0NDY1MCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTQ0NjUwYCoKCmByIFB1Yk1lZF8zMDk0NDY1MGAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTQ0NjUwYAoKYHIgUE1JRF8zMDk0NDY1MCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTQ0NjUwYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTQ0NjUwYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5NDQ2NTBgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIDMxMDAyNzkxLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMTAwMjc5MSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMTAwMjc5MScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMTAwMjc5MSA8LSBwYXN0ZTAoUE1JRF8zMTAwMjc5MSRqb3VybmFsLCcgJywgUE1JRF8zMTAwMjc5MSR5ZWFyLCAnICcsIFBNSURfMzEwMDI3OTEkbW9udGgsJzsnLCBQTUlEXzMxMDAyNzkxJHZvbHVtZSwnKCcsIFBNSURfMzEwMDI3OTEkbnVtYmVyLCcpOicsIFBNSURfMzEwMDI3OTEkcGFnZXMpCgpQdWJNZWRfMzEwMDI3OTEgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMTAwMjc5MSRlcHJpbnQpCgpkb2lfMzEwMDI3OTEgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMTAwMjc5MSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMTAwMjc5MSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMTAwMjc5MSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMxMDAyNzkxIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMxMDAyNzkxJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMTAwMjc5MSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMxMDAyNzkxJHRpdGxlICwgIiBQTUlEOiAzMTAwMjc5MSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8zMTAwMjc5MSwKUE1JRCA9IFBNSURfMzEwMDI3OTEkZXByaW50LApUaXRsZSA9IFBNSURfMzEwMDI3OTEkdGl0bGUsCiMgQXV0aG9yID0gUE1JRF8zMTAwMjc5MSRhdXRob3IsCkFic3RyYWN0ID0gUE1JRF8zMTAwMjc5MSRhYnN0cmFjdCwKSm91cm5hbCA9IFBNSURfMzEwMDI3OTEkam91cm5hbCwKWWVhciA9IFBNSURfMzEwMDI3OTEkeWVhciwKTW9udGggPSBQTUlEXzMxMDAyNzkxJG1vbnRoLApWb2x1bWUgPSBQTUlEXzMxMDAyNzkxJHZvbHVtZSwKTnVtYmVyID0gUE1JRF8zMTAwMjc5MSRudW1iZXIsClBhZ2VzID0gUE1JRF8zMTAwMjc5MSRwYWdlcywKUHViTWVkTGluayA9IHBhc3RlMCgnaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvP3Rlcm09JywgUE1JRF8zMTAwMjc5MSRlcHJpbnQpLApEb2lOdW1iZXIgPSBQTUlEXzMxMDAyNzkxJGRvaSwKRG9pTGluayA9IHBhc3RlMCgnaHR0cHM6Ly9kb2kub3JnLycsIFBNSURfMzEwMDI3OTEkZG9pKSwKTGFuZ3VhZ2UgPSBQTUlEXzMxMDAyNzkxJGxhbmd1YWdlLApJU1NOID0gUE1JRF8zMTAwMjc5MSRpc3NuCikgJT4lCgp1bmlxdWUoKQoKClN5cy5zbGVlcCgxKQoKc2F2ZVJEUyhhcnRpY2xlcywgJ2FydGljbGVzLnJkcycpCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMTAwMjc5MSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMxMDAyNzkxYCoKCmByIFB1Yk1lZF8zMTAwMjc5MWAKCmByIGFkZHRoaXNfaW5saW5lXzMxMDAyNzkxYAoKYHIgUE1JRF8zMTAwMjc5MSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMxMDAyNzkxYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMxMDAyNzkxYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzEwMDI3OTFgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIDMxMDIyMzg0LCBpbmNsdWRlPUZBTFNFfQoKYXJ0aWNsZXMgPC0gcmVhZFJEUygnYXJ0aWNsZXMucmRzJykKCgpQTUlEXzMxMDIyMzg0IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMxMDIyMzg0JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMxMDIyMzg0IDwtIHBhc3RlMChQTUlEXzMxMDIyMzg0JGpvdXJuYWwsJyAnLCBQTUlEXzMxMDIyMzg0JHllYXIsICcgJywgUE1JRF8zMTAyMjM4NCRtb250aCwnOycsIFBNSURfMzEwMjIzODQkdm9sdW1lLCcoJywgUE1JRF8zMTAyMjM4NCRudW1iZXIsJyk6JywgUE1JRF8zMTAyMjM4NCRwYWdlcykKClB1Yk1lZF8zMTAyMjM4NCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMxMDIyMzg0JGVwcmludCkKCmRvaV8zMTAyMjM4NCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMxMDIyMzg0JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMxMDIyMzg0IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMxMDIyMzg0JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzEwMjIzODQgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzEwMjIzODQkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMxMDIyMzg0IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzEwMjIzODQkdGl0bGUgLCAiIFBNSUQ6IDMxMDIyMzg0ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgphcnRpY2xlcyA8LSBhcnRpY2xlcyAlPiUKCmFkZF9yb3coCgpBcnRpY2xlQ2l0YXRpb24gPSBQTUlEXzMxMDIyMzg0LApQTUlEID0gUE1JRF8zMTAyMjM4NCRlcHJpbnQsClRpdGxlID0gUE1JRF8zMTAyMjM4NCR0aXRsZSwKIyBBdXRob3IgPSBQTUlEXzMxMDIyMzg0JGF1dGhvciwKQWJzdHJhY3QgPSBQTUlEXzMxMDIyMzg0JGFic3RyYWN0LApKb3VybmFsID0gUE1JRF8zMTAyMjM4NCRqb3VybmFsLApZZWFyID0gUE1JRF8zMTAyMjM4NCR5ZWFyLApNb250aCA9IFBNSURfMzEwMjIzODQkbW9udGgsCiMgVm9sdW1lID0gUE1JRF8zMTAyMjM4NCR2b2x1bWUsCiMgTnVtYmVyID0gUE1JRF8zMTAyMjM4NCRudW1iZXIsCiMgUGFnZXMgPSBQTUlEXzMxMDIyMzg0JHBhZ2VzLApQdWJNZWRMaW5rID0gcGFzdGUwKCdodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8/dGVybT0nLCBQTUlEXzMxMDIyMzg0JGVwcmludCksCkRvaU51bWJlciA9IFBNSURfMzEwMjIzODQkZG9pLApEb2lMaW5rID0gcGFzdGUwKCdodHRwczovL2RvaS5vcmcvJywgUE1JRF8zMTAyMjM4NCRkb2kpLApMYW5ndWFnZSA9IFBNSURfMzEwMjIzODQkbGFuZ3VhZ2UsCklTU04gPSBQTUlEXzMxMDIyMzg0JGlzc24KKSAlPiUKCnVuaXF1ZSgpCgoKU3lzLnNsZWVwKDEpCgpzYXZlUkRTKGFydGljbGVzLCAnYXJ0aWNsZXMucmRzJykKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMxMDIyMzg0JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzEwMjIzODRgKgoKYHIgUHViTWVkXzMxMDIyMzg0YAoKYHIgYWRkdGhpc19pbmxpbmVfMzEwMjIzODRgCgpgciBQTUlEXzMxMDIyMzg0JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzEwMjIzODRgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzEwMjIzODRgCgpgciBhbHRtZXRyaWNCYWRnZV8zMTAyMjM4NGAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3IgMzEwMjUyNTcsIGluY2x1ZGU9RkFMU0V9CgphcnRpY2xlcyA8LSByZWFkUkRTKCdhcnRpY2xlcy5yZHMnKQoKClBNSURfMzEwMjUyNTcgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzEwMjUyNTcnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzEwMjUyNTcgPC0gcGFzdGUwKFBNSURfMzEwMjUyNTckam91cm5hbCwnICcsIFBNSURfMzEwMjUyNTckeWVhciwgJyAnLCBQTUlEXzMxMDI1MjU3JG1vbnRoLCc7JywgUE1JRF8zMTAyNTI1NyR2b2x1bWUsJygnLCBQTUlEXzMxMDI1MjU3JG51bWJlciwnKTonLCBQTUlEXzMxMDI1MjU3JHBhZ2VzKQoKUHViTWVkXzMxMDI1MjU3IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzEwMjUyNTckZXByaW50KQoKZG9pXzMxMDI1MjU3IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzEwMjUyNTckZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzEwMjUyNTcgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzEwMjUyNTckZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMTAyNTI1NyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMTAyNTI1NyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzEwMjUyNTcgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMTAyNTI1NyR0aXRsZSAsICIgUE1JRDogMzEwMjUyNTcgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmFydGljbGVzIDwtIGFydGljbGVzICU+JQoKYWRkX3JvdygKCkFydGljbGVDaXRhdGlvbiA9IFBNSURfMzEwMjUyNTcsClBNSUQgPSBQTUlEXzMxMDI1MjU3JGVwcmludCwKVGl0bGUgPSBQTUlEXzMxMDI1MjU3JHRpdGxlLAojIEF1dGhvciA9IFBNSURfMzEwMjUyNTckYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzEwMjUyNTckYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMxMDI1MjU3JGpvdXJuYWwsClllYXIgPSBQTUlEXzMxMDI1MjU3JHllYXIsCk1vbnRoID0gUE1JRF8zMTAyNTI1NyRtb250aCwKIyBWb2x1bWUgPSBQTUlEXzMxMDI1MjU3JHZvbHVtZSwKIyBOdW1iZXIgPSBQTUlEXzMxMDI1MjU3JG51bWJlciwKIyBQYWdlcyA9IFBNSURfMzEwMjUyNTckcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzEwMjUyNTckZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMTAyNTI1NyRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMxMDI1MjU3JGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMTAyNTI1NyRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzEwMjUyNTckaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzEwMjUyNTckdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMTAyNTI1N2AqCgpgciBQdWJNZWRfMzEwMjUyNTdgCgpgciBhZGR0aGlzX2lubGluZV8zMTAyNTI1N2AKCmByIFBNSURfMzEwMjUyNTckYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMTAyNTI1N2AgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMTAyNTI1N2AKCmByIGFsdG1ldHJpY0JhZGdlXzMxMDI1MjU3YAoKPC9kZXRhaWxzPgoKLS0tCgotICoqSGVhciBQYW5jcmVhdGljIENhbmNlciBTdGVtIENlbGxzIFJPUioqCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMDkyODY3NDE5MzAzODg1CgotLS0KCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgojIyMjIFNQTgoKU29saWQgUHNldWRvcGFwaWxsYXJ5IE5lb3BsYXNtCgpgYGB7ciBTIFNQTiBTb2xpZCBQc2V1ZG9wYXBpbGxhcnkgTmVvcGxhc20sIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCgotLS0KCgotLS0KCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgojIyMjIFBhbmNyZWF0aXRpcyAmIE90aGVyIERpc2Vhc2VzCgpNb2xlY3VsYXIgU3R1ZGllcyBvbiBQYW5jcmVhdGl0aXMgJiBPdGhlciBEaXNlYXNlcwoKYGBge3IgTW9sZWN1bGFyIFN0dWRpZXMgb24gUGFuY3JlYXRpdGlzICYgT3RoZXIgRGlzZWFzZXMsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCi0tLQoKYGBge3IgMzEwMDU4ODMsIGluY2x1ZGU9RkFMU0V9CmFydGljbGVzIDwtIHJlYWRSRFMoJ2FydGljbGVzLnJkcycpCgoKUE1JRF8zMTAwNTg4MyA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMTAwNTg4MycsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMTAwNTg4MyA8LSBwYXN0ZTAoUE1JRF8zMTAwNTg4MyRqb3VybmFsLCcgJywgUE1JRF8zMTAwNTg4MyR5ZWFyLCAnICcsIFBNSURfMzEwMDU4ODMkbW9udGgsJzsnLCBQTUlEXzMxMDA1ODgzJHZvbHVtZSwnKCcsIFBNSURfMzEwMDU4ODMkbnVtYmVyLCcpOicsIFBNSURfMzEwMDU4ODMkcGFnZXMpCgpQdWJNZWRfMzEwMDU4ODMgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMTAwNTg4MyRlcHJpbnQpCgpkb2lfMzEwMDU4ODMgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMTAwNTg4MyRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMTAwNTg4MyA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMTAwNTg4MyRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMxMDA1ODgzIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMxMDA1ODgzJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMTAwNTg4MyA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMxMDA1ODgzJHRpdGxlICwgIiBQTUlEOiAzMTAwNTg4MyAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYXJ0aWNsZXMgPC0gYXJ0aWNsZXMgJT4lCgphZGRfcm93KAoKQXJ0aWNsZUNpdGF0aW9uID0gUE1JRF8zMTAwNTg4MywKUE1JRCA9IFBNSURfMzEwMDU4ODMkZXByaW50LApUaXRsZSA9IFBNSURfMzEwMDU4ODMkdGl0bGUsCiMgQXV0aG9yID0gUE1JRF8zMTAwNTg4MyRhdXRob3IsCiMgQWJzdHJhY3QgPSBQTUlEXzMxMDA1ODgzJGFic3RyYWN0LApKb3VybmFsID0gUE1JRF8zMTAwNTg4MyRqb3VybmFsLApZZWFyID0gUE1JRF8zMTAwNTg4MyR5ZWFyLApNb250aCA9IFBNSURfMzEwMDU4ODMkbW9udGgsCiMgVm9sdW1lID0gUE1JRF8zMTAwNTg4MyR2b2x1bWUsCiMgTnVtYmVyID0gUE1JRF8zMTAwNTg4MyRudW1iZXIsCiMgUGFnZXMgPSBQTUlEXzMxMDA1ODgzJHBhZ2VzLApQdWJNZWRMaW5rID0gcGFzdGUwKCdodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8/dGVybT0nLCBQTUlEXzMxMDA1ODgzJGVwcmludCksCkRvaU51bWJlciA9IFBNSURfMzEwMDU4ODMkZG9pLApEb2lMaW5rID0gcGFzdGUwKCdodHRwczovL2RvaS5vcmcvJywgUE1JRF8zMTAwNTg4MyRkb2kpLApMYW5ndWFnZSA9IFBNSURfMzEwMDU4ODMkbGFuZ3VhZ2UsCklTU04gPSBQTUlEXzMxMDA1ODgzJGlzc24KKSAlPiUKCnVuaXF1ZSgpCgoKU3lzLnNsZWVwKDEpCgpzYXZlUkRTKGFydGljbGVzLCAnYXJ0aWNsZXMucmRzJykKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMxMDA1ODgzJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzEwMDU4ODNgKgoKYHIgUHViTWVkXzMxMDA1ODgzYAoKYHIgYWRkdGhpc19pbmxpbmVfMzEwMDU4ODNgCgpgciBQTUlEXzMxMDA1ODgzJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzEwMDU4ODNgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzEwMDU4ODNgCgpgciBhbHRtZXRyaWNCYWRnZV8zMTAwNTg4M2AKCjwvZGV0YWlscz4KCi0tLQoKCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgojIyMjIE1vbGVjdWxhciBSZXNlYXJjaCBvbiBNaWNyb2Vudmlyb25tZW50IAoKVHVtb3IgU3Ryb21hIEludGVyYWN0aW9ucywgTWljcm9lbnZpcm9ubWVudCwgSW5mbGFtbWF0b3J5IFJlc3BvbnNlLCBNaWNyb2Jpb21lCgpgYGB7ciBNb2xlY3VsYXIgVHVtb3IgU3Ryb21hIEludGVyYWN0aW9ucyBNaWNyb2Vudmlyb25tZW50IEluZmxhbW1hdG9yeSBSZXNwb25zZSBNaWNyb2Jpb21lLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCi0tLQoKLSAqKk1ldGFzdGFzaXMgb2YgcGFuY3JlYXRpYyBjYW5jZXI6IEFuIHVuaW5mbGFtZWQgbGl2ZXIgbWljcm9taWxpZXUgY29udHJvbHMgY2VsbCBncm93dGggYW5kIGNhbmNlciBzdGVtIGNlbGwgcHJvcGVydGllcyBieSBveGlkYXRpdmUgcGhvc3Bob3J5bGF0aW9uIGluIHBhbmNyZWF0aWMgZHVjdGFsIGVwaXRoZWxpYWwgY2VsbHMqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDMwNDM4MzUxOTMwMTk1OAoKCi0tLQoKYGBge3Igenp6IDMwOTQwNjU3LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDk0MDY1NyA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk0MDY1NycsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk0MDY1NyA8LSBwYXN0ZTAoUE1JRF8zMDk0MDY1NyRqb3VybmFsLCcgJywgUE1JRF8zMDk0MDY1NyR5ZWFyLCAnICcsIFBNSURfMzA5NDA2NTckbW9udGgsJzsnLCBQTUlEXzMwOTQwNjU3JHZvbHVtZSwnKCcsIFBNSURfMzA5NDA2NTckbnVtYmVyLCcpOicsIFBNSURfMzA5NDA2NTckcGFnZXMpCgpQdWJNZWRfMzA5NDA2NTcgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk0MDY1NyRlcHJpbnQpCgpkb2lfMzA5NDA2NTcgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk0MDY1NyRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk0MDY1NyA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk0MDY1NyRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTQwNjU3IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTQwNjU3JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk0MDY1NyA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTQwNjU3JHRpdGxlICwgIiBQTUlEOiAzMDk0MDY1NyAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5NDA2NTckdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk0MDY1N2AqCgpgciBQdWJNZWRfMzA5NDA2NTdgCgpgciBhZGR0aGlzX2lubGluZV8zMDk0MDY1N2AKCmByIFBNSURfMzA5NDA2NTckYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk0MDY1N2AgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk0MDY1N2AKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTQwNjU3YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciB6enogMzAxNzEyNjMsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwMTcxMjYzIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwMTcxMjYzJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwMTcxMjYzIDwtIHBhc3RlMChQTUlEXzMwMTcxMjYzJGpvdXJuYWwsJyAnLCBQTUlEXzMwMTcxMjYzJHllYXIsICcgJywgUE1JRF8zMDE3MTI2MyRtb250aCwnOycsIFBNSURfMzAxNzEyNjMkdm9sdW1lLCcoJywgUE1JRF8zMDE3MTI2MyRudW1iZXIsJyk6JywgUE1JRF8zMDE3MTI2MyRwYWdlcykKClB1Yk1lZF8zMDE3MTI2MyA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwMTcxMjYzJGVwcmludCkKCmRvaV8zMDE3MTI2MyA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwMTcxMjYzJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwMTcxMjYzIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwMTcxMjYzJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzAxNzEyNjMgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzAxNzEyNjMkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwMTcxMjYzIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzAxNzEyNjMkdGl0bGUgLCAiIFBNSUQ6IDMwMTcxMjYzICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDE3MTI2MyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwMTcxMjYzYCoKCmByIFB1Yk1lZF8zMDE3MTI2M2AKCmByIGFkZHRoaXNfaW5saW5lXzMwMTcxMjYzYAoKYHIgUE1JRF8zMDE3MTI2MyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwMTcxMjYzYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwMTcxMjYzYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzAxNzEyNjNgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIDMwOTk2MzUwLCBpbmNsdWRlPUZBTFNFfQphcnRpY2xlcyA8LSByZWFkUkRTKCdhcnRpY2xlcy5yZHMnKQoKClBNSURfMzA5OTYzNTAgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5OTYzNTAnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5OTYzNTAgPC0gcGFzdGUwKFBNSURfMzA5OTYzNTAkam91cm5hbCwnICcsIFBNSURfMzA5OTYzNTAkeWVhciwgJyAnLCBQTUlEXzMwOTk2MzUwJG1vbnRoLCc7JywgUE1JRF8zMDk5NjM1MCR2b2x1bWUsJygnLCBQTUlEXzMwOTk2MzUwJG51bWJlciwnKTonLCBQTUlEXzMwOTk2MzUwJHBhZ2VzKQoKUHViTWVkXzMwOTk2MzUwIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5OTYzNTAkZXByaW50KQoKZG9pXzMwOTk2MzUwIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5OTYzNTAkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5OTYzNTAgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5OTYzNTAkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk5NjM1MCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk5NjM1MCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5OTYzNTAgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk5NjM1MCR0aXRsZSAsICIgUE1JRDogMzA5OTYzNTAgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmFydGljbGVzIDwtIGFydGljbGVzICU+JQoKYWRkX3JvdygKCkFydGljbGVDaXRhdGlvbiA9IFBNSURfMzA5OTYzNTAsClBNSUQgPSBQTUlEXzMwOTk2MzUwJGVwcmludCwKVGl0bGUgPSBQTUlEXzMwOTk2MzUwJHRpdGxlLAojIEF1dGhvciA9IFBNSURfMzA5OTYzNTAkYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzA5OTYzNTAkYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMwOTk2MzUwJGpvdXJuYWwsClllYXIgPSBQTUlEXzMwOTk2MzUwJHllYXIsCk1vbnRoID0gUE1JRF8zMDk5NjM1MCRtb250aCwKIyBWb2x1bWUgPSBQTUlEXzMwOTk2MzUwJHZvbHVtZSwKIyBOdW1iZXIgPSBQTUlEXzMwOTk2MzUwJG51bWJlciwKIyBQYWdlcyA9IFBNSURfMzA5OTYzNTAkcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzA5OTYzNTAkZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMDk5NjM1MCRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMwOTk2MzUwJGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMDk5NjM1MCRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzA5OTYzNTAkaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5OTYzNTAkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk5NjM1MGAqCgpgciBQdWJNZWRfMzA5OTYzNTBgCgpgciBhZGR0aGlzX2lubGluZV8zMDk5NjM1MGAKCmByIFBNSURfMzA5OTYzNTAkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk5NjM1MGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk5NjM1MGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTk2MzUwYAoKPC9kZXRhaWxzPgoKLS0tCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgojIyMjIFByZW5lb3BsYXN0aWMgYW5kIFByZWludmFzaXZlIExlc2lvbnMgCgpNb2xlY3VsYXIgUGF0aG9sb2d5IFByZW5lb3BsYXN0aWMgYW5kIFByZWludmFzaXZlIExlc2lvbnMsIFBhbklOLCBJUE1OLCBNQ04sIElDUE4sIElPUE4KCmBgYHtyIE1vbGVjdWxhciBQYW5jcmVhcyBQcmVuZW9wbGFzdGljIGFuZCBQcmVpbnZhc2l2ZSBMZXNpb25zIElQTU4gTUNOIElUUE4gSU9QTiwgIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCgotLS0KCmBgYHtyIDMxMDI1MjMxLCBpbmNsdWRlPUZBTFNFfQoKYXJ0aWNsZXMgPC0gcmVhZFJEUygnYXJ0aWNsZXMucmRzJykKCgpQTUlEXzMxMDI1MjMxIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMxMDI1MjMxJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMxMDI1MjMxIDwtIHBhc3RlMChQTUlEXzMxMDI1MjMxJGpvdXJuYWwsJyAnLCBQTUlEXzMxMDI1MjMxJHllYXIsICcgJywgUE1JRF8zMTAyNTIzMSRtb250aCwnOycsIFBNSURfMzEwMjUyMzEkdm9sdW1lLCcoJywgUE1JRF8zMTAyNTIzMSRudW1iZXIsJyk6JywgUE1JRF8zMTAyNTIzMSRwYWdlcykKClB1Yk1lZF8zMTAyNTIzMSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMxMDI1MjMxJGVwcmludCkKCmRvaV8zMTAyNTIzMSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMxMDI1MjMxJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMxMDI1MjMxIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMxMDI1MjMxJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzEwMjUyMzEgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzEwMjUyMzEkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMxMDI1MjMxIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzEwMjUyMzEkdGl0bGUgLCAiIFBNSUQ6IDMxMDI1MjMxICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgphcnRpY2xlcyA8LSBhcnRpY2xlcyAlPiUKCmFkZF9yb3coCgpBcnRpY2xlQ2l0YXRpb24gPSBQTUlEXzMxMDI1MjMxLApQTUlEID0gUE1JRF8zMTAyNTIzMSRlcHJpbnQsClRpdGxlID0gUE1JRF8zMTAyNTIzMSR0aXRsZSwKIyBBdXRob3IgPSBQTUlEXzMxMDI1MjMxJGF1dGhvciwKQWJzdHJhY3QgPSBQTUlEXzMxMDI1MjMxJGFic3RyYWN0LApKb3VybmFsID0gUE1JRF8zMTAyNTIzMSRqb3VybmFsLApZZWFyID0gUE1JRF8zMTAyNTIzMSR5ZWFyLApNb250aCA9IFBNSURfMzEwMjUyMzEkbW9udGgsCiMgVm9sdW1lID0gUE1JRF8zMTAyNTIzMSR2b2x1bWUsCiMgTnVtYmVyID0gUE1JRF8zMTAyNTIzMSRudW1iZXIsCiMgUGFnZXMgPSBQTUlEXzMxMDI1MjMxJHBhZ2VzLApQdWJNZWRMaW5rID0gcGFzdGUwKCdodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8/dGVybT0nLCBQTUlEXzMxMDI1MjMxJGVwcmludCksCkRvaU51bWJlciA9IFBNSURfMzEwMjUyMzEkZG9pLApEb2lMaW5rID0gcGFzdGUwKCdodHRwczovL2RvaS5vcmcvJywgUE1JRF8zMTAyNTIzMSRkb2kpLApMYW5ndWFnZSA9IFBNSURfMzEwMjUyMzEkbGFuZ3VhZ2UsCklTU04gPSBQTUlEXzMxMDI1MjMxJGlzc24KKSAlPiUKCnVuaXF1ZSgpCgoKU3lzLnNsZWVwKDEpCgpzYXZlUkRTKGFydGljbGVzLCAnYXJ0aWNsZXMucmRzJykKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMxMDI1MjMxJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzEwMjUyMzFgKgoKYHIgUHViTWVkXzMxMDI1MjMxYAoKYHIgYWRkdGhpc19pbmxpbmVfMzEwMjUyMzFgCgpgciBQTUlEXzMxMDI1MjMxJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzEwMjUyMzFgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzEwMjUyMzFgCgpgciBhbHRtZXRyaWNCYWRnZV8zMTAyNTIzMWAKCjwvZGV0YWlscz4KCi0tLQoKCgoKCgoKCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgojIyMgQmlsZSBEdWN0cwoKYGBge3IgTSBCaWxlIER1Y3RzLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgotLS0KCmBgYHtyIHp6eiAzMDk3MTQzNiwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA5NzE0MzYgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5NzE0MzYnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5NzE0MzYgPC0gcGFzdGUwKFBNSURfMzA5NzE0MzYkam91cm5hbCwnICcsIFBNSURfMzA5NzE0MzYkeWVhciwgJyAnLCBQTUlEXzMwOTcxNDM2JG1vbnRoLCc7JywgUE1JRF8zMDk3MTQzNiR2b2x1bWUsJygnLCBQTUlEXzMwOTcxNDM2JG51bWJlciwnKTonLCBQTUlEXzMwOTcxNDM2JHBhZ2VzKQoKUHViTWVkXzMwOTcxNDM2IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5NzE0MzYkZXByaW50KQoKZG9pXzMwOTcxNDM2IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5NzE0MzYkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5NzE0MzYgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5NzE0MzYkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk3MTQzNiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk3MTQzNiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5NzE0MzYgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk3MTQzNiR0aXRsZSAsICIgUE1JRDogMzA5NzE0MzYgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTcxNDM2JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NzE0MzZgKgoKYHIgUHViTWVkXzMwOTcxNDM2YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NzE0MzZgCgpgciBQTUlEXzMwOTcxNDM2JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NzE0MzZgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NzE0MzZgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk3MTQzNmAKCjwvZGV0YWlscz4KCi0tLQoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgoKIyMjIEdhbGxibGFkZGVyCgpgYGB7ciBNIEdhbGxibGFkZGVyLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgotLS0KCgoKLS0tCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKIyMjIEFtcHVsbGEgb2YgVmF0ZXIKCmBgYHtyIE0gQW1wdWxsYSBvZiBWYXRlciwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKLS0tCgpgYGB7ciB6enogMzA5NzYxMDMsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTc2MTAzIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTc2MTAzJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTc2MTAzIDwtIHBhc3RlMChQTUlEXzMwOTc2MTAzJGpvdXJuYWwsJyAnLCBQTUlEXzMwOTc2MTAzJHllYXIsICcgJywgUE1JRF8zMDk3NjEwMyRtb250aCwnOycsIFBNSURfMzA5NzYxMDMkdm9sdW1lLCcoJywgUE1JRF8zMDk3NjEwMyRudW1iZXIsJyk6JywgUE1JRF8zMDk3NjEwMyRwYWdlcykKClB1Yk1lZF8zMDk3NjEwMyA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTc2MTAzJGVwcmludCkKCmRvaV8zMDk3NjEwMyA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTc2MTAzJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTc2MTAzIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTc2MTAzJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NzYxMDMgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NzYxMDMkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTc2MTAzIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NzYxMDMkdGl0bGUgLCAiIFBNSUQ6IDMwOTc2MTAzICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk3NjEwMyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTc2MTAzYCoKCmByIFB1Yk1lZF8zMDk3NjEwM2AKCmByIGFkZHRoaXNfaW5saW5lXzMwOTc2MTAzYAoKYHIgUE1JRF8zMDk3NjEwMyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTc2MTAzYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTc2MTAzYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5NzYxMDNgCgo8L2RldGFpbHM+CgotLS0KCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKIyMjIE5ldXJvZW5kb2NyaW5lCgoKYGBge3IgTSBOZXVyb2VuZG9jcmluZSwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgotLS0KCmBgYHtyIDMxMDExOTA0LCBpbmNsdWRlPUZBTFNFfQphcnRpY2xlcyA8LSByZWFkUkRTKCdhcnRpY2xlcy5yZHMnKQoKClBNSURfMzEwMTE5MDQgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzEwMTE5MDQnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzEwMTE5MDQgPC0gcGFzdGUwKFBNSURfMzEwMTE5MDQkam91cm5hbCwnICcsIFBNSURfMzEwMTE5MDQkeWVhciwgJyAnLCBQTUlEXzMxMDExOTA0JG1vbnRoLCc7JywgUE1JRF8zMTAxMTkwNCR2b2x1bWUsJygnLCBQTUlEXzMxMDExOTA0JG51bWJlciwnKTonLCBQTUlEXzMxMDExOTA0JHBhZ2VzKQoKUHViTWVkXzMxMDExOTA0IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzEwMTE5MDQkZXByaW50KQoKZG9pXzMxMDExOTA0IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzEwMTE5MDQkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzEwMTE5MDQgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzEwMTE5MDQkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMTAxMTkwNCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMTAxMTkwNCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzEwMTE5MDQgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMTAxMTkwNCR0aXRsZSAsICIgUE1JRDogMzEwMTE5MDQgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmFydGljbGVzIDwtIGFydGljbGVzICU+JQoKYWRkX3JvdygKCkFydGljbGVDaXRhdGlvbiA9IFBNSURfMzEwMTE5MDQsClBNSUQgPSBQTUlEXzMxMDExOTA0JGVwcmludCwKVGl0bGUgPSBQTUlEXzMxMDExOTA0JHRpdGxlLAojIEF1dGhvciA9IFBNSURfMzEwMTE5MDQkYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzEwMTE5MDQkYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMxMDExOTA0JGpvdXJuYWwsClllYXIgPSBQTUlEXzMxMDExOTA0JHllYXIsCk1vbnRoID0gUE1JRF8zMTAxMTkwNCRtb250aCwKIyBWb2x1bWUgPSBQTUlEXzMxMDExOTA0JHZvbHVtZSwKIyBOdW1iZXIgPSBQTUlEXzMxMDExOTA0JG51bWJlciwKIyBQYWdlcyA9IFBNSURfMzEwMTE5MDQkcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzEwMTE5MDQkZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMTAxMTkwNCRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMxMDExOTA0JGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMTAxMTkwNCRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzEwMTE5MDQkaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzEwMTE5MDQkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMTAxMTkwNGAqCgpgciBQdWJNZWRfMzEwMTE5MDRgCgpgciBhZGR0aGlzX2lubGluZV8zMTAxMTkwNGAKCmByIFBNSURfMzEwMTE5MDQkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMTAxMTkwNGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMTAxMTkwNGAKCmByIGFsdG1ldHJpY0JhZGdlXzMxMDExOTA0YAoKPC9kZXRhaWxzPgoKCgoKCgotLS0KCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgojIyBPdGhlcnMgey50YWJzZXR9CgotLS0KCiMjIyBDYXNlIFJlcG9ydHMKCi0tLQoKIyMjIyBQYW5jcmVhcwoKCi0tLQoKYGBge3Igenp6IDMwNzE5ODAxLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDcxOTgwMSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDcxOTgwMScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDcxOTgwMSA8LSBwYXN0ZTAoUE1JRF8zMDcxOTgwMSRqb3VybmFsLCcgJywgUE1JRF8zMDcxOTgwMSR5ZWFyLCAnICcsIFBNSURfMzA3MTk4MDEkbW9udGgsJzsnLCBQTUlEXzMwNzE5ODAxJHZvbHVtZSwnKCcsIFBNSURfMzA3MTk4MDEkbnVtYmVyLCcpOicsIFBNSURfMzA3MTk4MDEkcGFnZXMpCgpQdWJNZWRfMzA3MTk4MDEgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDcxOTgwMSRlcHJpbnQpCgpkb2lfMzA3MTk4MDEgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDcxOTgwMSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDcxOTgwMSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDcxOTgwMSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNzE5ODAxIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNzE5ODAxJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDcxOTgwMSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNzE5ODAxJHRpdGxlICwgIiBQTUlEOiAzMDcxOTgwMSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA3MTk4MDEkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDcxOTgwMWAqCgpgciBQdWJNZWRfMzA3MTk4MDFgCgpgciBhZGR0aGlzX2lubGluZV8zMDcxOTgwMWAKCmByIFBNSURfMzA3MTk4MDEkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDcxOTgwMWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDcxOTgwMWAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNzE5ODAxYAoKPC9kZXRhaWxzPgoKLS0tCgotICoqUGFuY3JlYXRpYyBjYW5jZXIg4oCYbWlzbWF0Y2jigJkgaW4gTHluY2ggc3luZHJvbWUqKgoKaHR0cHM6Ly9ibWpvcGVuZ2FzdHJvLmJtai5jb20vY29udGVudC82LzEvZTAwMDI3NAoKLS0tCgoKLS0tCgotICoqTWV0YXN0YXRpYyBsb3ctZ3JhZGUgZW5kb21ldHJpYWwgc3Ryb21hbCBzYXJjb21hIG9mIHV0ZXJ1cyBwcmVzZW50aW5nIGFzIGEgcHJpbWFyeSBwYW5jcmVhdGljIHR1bW9yOiBjYXNlIHByZXNlbnRhdGlvbiBhbmQgbGl0ZXJhdHVyZSByZXZpZXcqKgoKaHR0cHM6Ly9kaWFnbm9zdGljcGF0aG9sb2d5LmJpb21lZGNlbnRyYWwuY29tL2FydGljbGVzLzEwLjExODYvczEzMDAwLTAxOS0wODA3LTMKCgotLS0KCi0gKipNYWNyb2N5c3RpYyB2YXJpYW50IG9mIHNlcm91cyBjeXN0YWRlbm9tYSBvZiB0aGUgcGFuY3JlYXMgbWltaWNraW5nIG11Y2lub3VzIG5lb3BsYXNtIG9mIHBhbmNyZWFzKioKCmh0dHBzOi8vd3d3LnNlbWFudGljc2Nob2xhci5vcmcvcGFwZXIvTWFjcm9jeXN0aWMtdmFyaWFudC1vZi1zZXJvdXMtY3lzdGFkZW5vbWEtb2YtdGhlLW9mLUNoYW4tQ2hvbmcvNzFmMzhjZTA2OGMzNjc1OTA2MTkxZGE4MmFkMWEyOTdiNGZiZDhjOAoKLS0tCgotICoqU29saWQgcHNldWRvcGFwaWxsYXJ5IG5lb3BsYXNtIG9mIHRoZSBwYW5jcmVhcyBzaG93aW5nIG1hcmtlZCBkaXN0YWwgYXRyb3BoeTogQSBjYXNlIHJlcG9ydCoqCgpodHRwczovL3d3dy5zZW1hbnRpY3NjaG9sYXIub3JnL3BhcGVyL1NvbGlkLXBzZXVkb3BhcGlsbGFyeS1uZW9wbGFzbS1vZi10aGUtcGFuY3JlYXMtQS1Uc3VqaWUtV2FrYXNhLzAwMDI4MGJjZDVhMGMyZmYwNjgwZDI5YzQ5MTcyN2Y4OTJlZDRmNWQKCi0tLQoKLSAqKk1ldGFzdGF0aWMgc3F1YW1vdXMgY2VsbCBjYXJjaW5vbWEgdG8gdGhlIHBhbmNyZWFzOiBSZXBvcnQgb2YgYW4gZXh0cmVtZWx5IHJhcmUgY2FzZS4qKgoKaHR0cHM6Ly93d3cuc2VtYW50aWNzY2hvbGFyLm9yZy9wYXBlci9NZXRhc3RhdGljLXNxdWFtb3VzLWNlbGwtY2FyY2lub21hLXRvLXRoZS1wYW5jcmVhcyUzQS1NYWNoYWlyYXMtUGFzcGFsYS9iYmJkMjc1MTI5ODI2NjljOGY5MmU0ZTE0ZjBjMTRjZTA3OWUxM2EwCgotLS0KCi0gKipJbnRyYWR1Y3RhbCB0dWJ1bGFyIHBhcGlsbGFyeSBuZW9wbGFzbSAoSVRQTiksIGEgbm92ZWwgZW50aXR5IG9mIHBhbmNyZWF0aWMgZXBpdGhlbGlhbCBuZW9wbGFzbXMgYW5kIHByZWN1cnNvciBvZiBjYW5jZXI6IEEgY2FzZSByZXBvcnQgYW5kIHJldmlldyBvZiB0aGUgbGl0ZXJhdHVyZSoqCgpodHRwczovL3d3dy5zZW1hbnRpY3NjaG9sYXIub3JnL3BhcGVyL0ludHJhZHVjdGFsLXR1YnVsYXItcGFwaWxsYXJ5LW5lb3BsYXNtLSUyOElUUE4lMjklMkMtYS1vZi1Gcml0ei1LJUMzJUJDcGVyLVN0ZWZmZW4vODgzYjdhODk0MTNhOTM3MWVlN2ZmZjI1MmU0YWFmYWI2MTdiODkzOD91dG1fc291cmNlPWFsZXJ0X2VtYWlsCgotLS0KCi0gKipJbnRyYWR1Y3RhbCB0dWJ1bG9wYXBpbGxhcnkgbmVvcGxhc20gKElUUE4pIG9mIHRoZSBwYW5jcmVhcyB3aXRoIGludmFzaXZlIGNhbmNlciBtaXNkaWFnbm9zZWQgYXMgYSBtZXNlbnRlcmljIGN5c3QgZm9yIDEyIHllYXJzOiBhIGNhc2UgcmVwb3J0IGFuZCBsaXRlcmF0dXJlIHJldmlldyoqCgpodHRwOi8vd3d3LmlqY2VwLmNvbS9maWxlcy9pamNlcDAwOTAzMDkucGRmCgotLS0KCi0gKipTYXJjb21hdG9pZCBjYXJjaW5vbWEgb2YgdGhlIHBhbmNyZWFzOiBBIGNhc2UgcmVwb3J0LioqCgpodHRwczovL3d3dy5zZW1hbnRpY3NjaG9sYXIub3JnL3BhcGVyL1NhcmNvbWF0b2lkLWNhcmNpbm9tYS1vZi10aGUtcGFuY3JlYXMlM0EtQS1jYXNlLVpob3UtR2FvL2ZhZmI1MDVkNTVlZWEyNTY5MDA0N2I1YTM3MTk4YjllNWZhNjY1MDYKCi0tLQoKIyMjIyBCaWxlIER1Y3RzCgotLS0KCiMjIyMgR2FsbGJsYWRkZXIKCgotLS0KCmBgYHtyIHp6eiAyODczMTE5NywgaW5jbHVkZT1GQUxTRX0KClBNSURfMjg3MzExOTcgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMjg3MzExOTcnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMjg3MzExOTcgPC0gcGFzdGUwKFBNSURfMjg3MzExOTckam91cm5hbCwnICcsIFBNSURfMjg3MzExOTckeWVhciwgJyAnLCBQTUlEXzI4NzMxMTk3JG1vbnRoLCc7JywgUE1JRF8yODczMTE5NyR2b2x1bWUsJygnLCBQTUlEXzI4NzMxMTk3JG51bWJlciwnKTonLCBQTUlEXzI4NzMxMTk3JHBhZ2VzKQoKUHViTWVkXzI4NzMxMTk3IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMjg3MzExOTckZXByaW50KQoKZG9pXzI4NzMxMTk3IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMjg3MzExOTckZG9pKQoKZGltZW5zaW9uQmFkZ2VfMjg3MzExOTcgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMjg3MzExOTckZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8yODczMTE5NyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8yODczMTE5NyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMjg3MzExOTcgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8yODczMTE5NyR0aXRsZSAsICIgUE1JRDogMjg3MzExOTcgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzI4NzMxMTk3JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMjg3MzExOTdgKgoKYHIgUHViTWVkXzI4NzMxMTk3YAoKYHIgYWRkdGhpc19pbmxpbmVfMjg3MzExOTdgCgpgciBQTUlEXzI4NzMxMTk3JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMjg3MzExOTdgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMjg3MzExOTdgCgpgciBhbHRtZXRyaWNCYWRnZV8yODczMTE5N2AKCjwvZGV0YWlscz4KCi0tLQoKCgojIyMjIEFtcHVsbGEgb2YgVmF0ZXIKCi0tLQoKCi0tLQoKCiMjIyMgTmV1cm9lbmRvY3JpbmUKCgotLS0KCmBgYHtyIHp6eiAzMDQ4MjUyMiwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA0ODI1MjIgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA0ODI1MjInLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA0ODI1MjIgPC0gcGFzdGUwKFBNSURfMzA0ODI1MjIkam91cm5hbCwnICcsIFBNSURfMzA0ODI1MjIkeWVhciwgJyAnLCBQTUlEXzMwNDgyNTIyJG1vbnRoLCc7JywgUE1JRF8zMDQ4MjUyMiR2b2x1bWUsJygnLCBQTUlEXzMwNDgyNTIyJG51bWJlciwnKTonLCBQTUlEXzMwNDgyNTIyJHBhZ2VzKQoKUHViTWVkXzMwNDgyNTIyIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA0ODI1MjIkZXByaW50KQoKZG9pXzMwNDgyNTIyIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA0ODI1MjIkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA0ODI1MjIgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA0ODI1MjIkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDQ4MjUyMiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDQ4MjUyMiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA0ODI1MjIgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDQ4MjUyMiR0aXRsZSAsICIgUE1JRDogMzA0ODI1MjIgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNDgyNTIyJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA0ODI1MjJgKgoKYHIgUHViTWVkXzMwNDgyNTIyYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA0ODI1MjJgCgpgciBQTUlEXzMwNDgyNTIyJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA0ODI1MjJgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA0ODI1MjJgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDQ4MjUyMmAKCjwvZGV0YWlscz4KCi0tLQoKLS0tCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKIyMjIE1vbGVjdWxhciAmIEV4cGVyaW1lbnRhbCBTdHVkaWVzCgoKCgotLS0KCmBgYHtyIHp6eiAzMDcxODY3OCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA3MTg2NzggPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA3MTg2NzgnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA3MTg2NzggPC0gcGFzdGUwKFBNSURfMzA3MTg2Nzgkam91cm5hbCwnICcsIFBNSURfMzA3MTg2NzgkeWVhciwgJyAnLCBQTUlEXzMwNzE4Njc4JG1vbnRoLCc7JywgUE1JRF8zMDcxODY3OCR2b2x1bWUsJygnLCBQTUlEXzMwNzE4Njc4JG51bWJlciwnKTonLCBQTUlEXzMwNzE4Njc4JHBhZ2VzKQoKUHViTWVkXzMwNzE4Njc4IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA3MTg2NzgkZXByaW50KQoKZG9pXzMwNzE4Njc4IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA3MTg2NzgkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA3MTg2NzggPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA3MTg2NzgkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDcxODY3OCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDcxODY3OCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA3MTg2NzggPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDcxODY3OCR0aXRsZSAsICIgUE1JRDogMzA3MTg2NzggIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNzE4Njc4JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA3MTg2NzhgKgoKYHIgUHViTWVkXzMwNzE4Njc4YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA3MTg2NzhgCgpgciBQTUlEXzMwNzE4Njc4JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA3MTg2NzhgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA3MTg2NzhgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDcxODY3OGAKCjwvZGV0YWlscz4KCgotLS0KCmBgYHtyIHp6eiAzMDU1ODY2NSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA1NTg2NjUgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA1NTg2NjUnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA1NTg2NjUgPC0gcGFzdGUwKFBNSURfMzA1NTg2NjUkam91cm5hbCwnICcsIFBNSURfMzA1NTg2NjUkeWVhciwgJyAnLCBQTUlEXzMwNTU4NjY1JG1vbnRoLCc7JywgUE1JRF8zMDU1ODY2NSR2b2x1bWUsJygnLCBQTUlEXzMwNTU4NjY1JG51bWJlciwnKTonLCBQTUlEXzMwNTU4NjY1JHBhZ2VzKQoKUHViTWVkXzMwNTU4NjY1IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA1NTg2NjUkZXByaW50KQoKZG9pXzMwNTU4NjY1IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA1NTg2NjUkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA1NTg2NjUgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA1NTg2NjUkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDU1ODY2NSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDU1ODY2NSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA1NTg2NjUgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDU1ODY2NSR0aXRsZSAsICIgUE1JRDogMzA1NTg2NjUgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNTU4NjY1JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA1NTg2NjVgKgoKYHIgUHViTWVkXzMwNTU4NjY1YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA1NTg2NjVgCgpgciBQTUlEXzMwNTU4NjY1JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA1NTg2NjVgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA1NTg2NjVgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDU1ODY2NWAKCjwvZGV0YWlscz4KCi0tLQoKCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKCgoKLS0tCgpgYGB7ciB6enogMzA5MzIyNTcsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTMyMjU3IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTMyMjU3JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTMyMjU3IDwtIHBhc3RlMChQTUlEXzMwOTMyMjU3JGpvdXJuYWwsJyAnLCBQTUlEXzMwOTMyMjU3JHllYXIsICcgJywgUE1JRF8zMDkzMjI1NyRtb250aCwnOycsIFBNSURfMzA5MzIyNTckdm9sdW1lLCcoJywgUE1JRF8zMDkzMjI1NyRudW1iZXIsJyk6JywgUE1JRF8zMDkzMjI1NyRwYWdlcykKClB1Yk1lZF8zMDkzMjI1NyA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTMyMjU3JGVwcmludCkKCmRvaV8zMDkzMjI1NyA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTMyMjU3JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTMyMjU3IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTMyMjU3JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5MzIyNTcgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5MzIyNTckZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTMyMjU3IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5MzIyNTckdGl0bGUgLCAiIFBNSUQ6IDMwOTMyMjU3ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDkzMjI1NyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTMyMjU3YCoKCmByIFB1Yk1lZF8zMDkzMjI1N2AKCmByIGFkZHRoaXNfaW5saW5lXzMwOTMyMjU3YAoKYHIgUE1JRF8zMDkzMjI1NyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTMyMjU3YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTMyMjU3YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5MzIyNTdgCgo8L2RldGFpbHM+CgotLS0KCgotLS0KCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKCiMjIyBUZWNobmlxdWVzLCBSZXNlYXJjaCBNZXRob2RzLCBMaXF1aWQgQmlvcHN5CgotLS0KClRlY2huaXF1ZXMsIFJlc2VhcmNoIE1ldGhvZHMsIExpcXVpZCBCaW9wc3kKCmBgYHtyIFRlY2huaXF1ZXMgJiBSZXNlYXJjaCBNZXRob2RzIExpcXVpZCBCaW9wc3ksIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCi0tLQoKYGBge3Igenp6IDMwODE5NTc3LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDgxOTU3NyA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDgxOTU3NycsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDgxOTU3NyA8LSBwYXN0ZTAoUE1JRF8zMDgxOTU3NyRqb3VybmFsLCcgJywgUE1JRF8zMDgxOTU3NyR5ZWFyLCAnICcsIFBNSURfMzA4MTk1NzckbW9udGgsJzsnLCBQTUlEXzMwODE5NTc3JHZvbHVtZSwnKCcsIFBNSURfMzA4MTk1NzckbnVtYmVyLCcpOicsIFBNSURfMzA4MTk1NzckcGFnZXMpCgpQdWJNZWRfMzA4MTk1NzcgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDgxOTU3NyRlcHJpbnQpCgpkb2lfMzA4MTk1NzcgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDgxOTU3NyRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDgxOTU3NyA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDgxOTU3NyRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwODE5NTc3IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwODE5NTc3JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDgxOTU3NyA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwODE5NTc3JHRpdGxlICwgIiBQTUlEOiAzMDgxOTU3NyAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA4MTk1NzckdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDgxOTU3N2AqCgpgciBQdWJNZWRfMzA4MTk1NzdgCgpgciBhZGR0aGlzX2lubGluZV8zMDgxOTU3N2AKCmByIFBNSURfMzA4MTk1NzckYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDgxOTU3N2AgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDgxOTU3N2AKCmByIGFsdG1ldHJpY0JhZGdlXzMwODE5NTc3YAoKPC9kZXRhaWxzPgoKLS0tCgotICoqT3JnYW5vaWQgTW9kZWxzIGZvciBDYW5jZXIgUmVzZWFyY2gqKgoKaHR0cHM6Ly93d3cuYW5udWFscmV2aWV3cy5vcmcvZG9pL2Ficy8xMC4xMTQ2L2FubnVyZXYtY2FuY2VyYmlvLTAzMDUxOC0wNTU3MDIKCi0tLQoKCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKCgoKCi0tLQoKYGBge3Igenp6IDMwOTcxNDM2IDIsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTcxNDM2IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTcxNDM2JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTcxNDM2IDwtIHBhc3RlMChQTUlEXzMwOTcxNDM2JGpvdXJuYWwsJyAnLCBQTUlEXzMwOTcxNDM2JHllYXIsICcgJywgUE1JRF8zMDk3MTQzNiRtb250aCwnOycsIFBNSURfMzA5NzE0MzYkdm9sdW1lLCcoJywgUE1JRF8zMDk3MTQzNiRudW1iZXIsJyk6JywgUE1JRF8zMDk3MTQzNiRwYWdlcykKClB1Yk1lZF8zMDk3MTQzNiA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTcxNDM2JGVwcmludCkKCmRvaV8zMDk3MTQzNiA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTcxNDM2JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTcxNDM2IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTcxNDM2JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NzE0MzYgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NzE0MzYkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTcxNDM2IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NzE0MzYkdGl0bGUgLCAiIFBNSUQ6IDMwOTcxNDM2ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk3MTQzNiR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTcxNDM2YCoKCmByIFB1Yk1lZF8zMDk3MTQzNmAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTcxNDM2YAoKYHIgUE1JRF8zMDk3MTQzNiRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTcxNDM2YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTcxNDM2YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5NzE0MzZgCgo8L2RldGFpbHM+CgotLS0KCi0gKipUaHJlZS1EaW1lbnNpb25hbCBGaXhhdGlvbjogUGF0aG9sb2dpY2FsIFByb3RvY29sIEZvbGxvd2luZyBQYW5jcmVhdGljb2R1b2RlbmVjdG9teSB3aXRoIFBvcnRhbCBWZWluIFJlc2VjdGlvbiBmb3IgUGFuY3JlYXRpYyBDYW5jZXIqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEwMDcvczExNjA1LTAxOS0wNDIwMy0yCgotLS0KCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKCiMjIyBSZXZpZXdzLCBPcGluaW9uIEFydGljbGVzCgoKYGBge3IgUmV2aWV3cyBPcGluaW9uIEFydGljbGVzLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCi0tLQoKLSAqKk1vbGVjdWxhciBlbnZveXMgcGF2ZSB0aGUgd2F5IGZvciBwYW5jcmVhdGljIGNhbmNlciB0byBpbnZhZGUgdGhlIGxpdmVyKioKCmh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLzMwODUwNzQwCgpodHRwczovL3d3dy5uYXR1cmUuY29tL2FydGljbGVzL2Q0MTU4Ni0wMTktMDA3MTAtegoKLS0tCgpgYGB7ciB6enogMzA4Mzg2MzYsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwODM4NjM2IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwODM4NjM2JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwODM4NjM2IDwtIHBhc3RlMChQTUlEXzMwODM4NjM2JGpvdXJuYWwsJyAnLCBQTUlEXzMwODM4NjM2JHllYXIsICcgJywgUE1JRF8zMDgzODYzNiRtb250aCwnOycsIFBNSURfMzA4Mzg2MzYkdm9sdW1lLCcoJywgUE1JRF8zMDgzODYzNiRudW1iZXIsJyk6JywgUE1JRF8zMDgzODYzNiRwYWdlcykKClB1Yk1lZF8zMDgzODYzNiA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwODM4NjM2JGVwcmludCkKCmRvaV8zMDgzODYzNiA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwODM4NjM2JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwODM4NjM2IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwODM4NjM2JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA4Mzg2MzYgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA4Mzg2MzYkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwODM4NjM2IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA4Mzg2MzYkdGl0bGUgLCAiIFBNSUQ6IDMwODM4NjM2ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDgzODYzNiR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwODM4NjM2YCoKCmByIFB1Yk1lZF8zMDgzODYzNmAKCmByIGFkZHRoaXNfaW5saW5lXzMwODM4NjM2YAoKYHIgUE1JRF8zMDgzODYzNiRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwODM4NjM2YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwODM4NjM2YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA4Mzg2MzZgCgo8L2RldGFpbHM+CgotLS0KCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKCgoKCi0tLQoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgojIyMgQW5pbWFsIFN0dWRpZXMKCgpgYGB7ciBBbmltYWwgU3R1ZGllcywgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKLS0tCgotLS0KCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKIyMjIE9uY29sb2d5IGFuZCBzZXJ1bSBtYXJrZXIgc3R1ZGllcwoKCmBgYHtyIE9uY29sb2d5IGFuZCBzZXJ1bSBtYXJrZXIgc3R1ZGllcywgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgoKLS0tCgpgYGB7ciB6enogMzA5MjYzNTAsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTI2MzUwIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTI2MzUwJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTI2MzUwIDwtIHBhc3RlMChQTUlEXzMwOTI2MzUwJGpvdXJuYWwsJyAnLCBQTUlEXzMwOTI2MzUwJHllYXIsICcgJywgUE1JRF8zMDkyNjM1MCRtb250aCwnOycsIFBNSURfMzA5MjYzNTAkdm9sdW1lLCcoJywgUE1JRF8zMDkyNjM1MCRudW1iZXIsJyk6JywgUE1JRF8zMDkyNjM1MCRwYWdlcykKClB1Yk1lZF8zMDkyNjM1MCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTI2MzUwJGVwcmludCkKCmRvaV8zMDkyNjM1MCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTI2MzUwJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTI2MzUwIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTI2MzUwJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5MjYzNTAgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5MjYzNTAkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTI2MzUwIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5MjYzNTAkdGl0bGUgLCAiIFBNSUQ6IDMwOTI2MzUwICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDkyNjM1MCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTI2MzUwYCoKCmByIFB1Yk1lZF8zMDkyNjM1MGAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTI2MzUwYAoKYHIgUE1JRF8zMDkyNjM1MCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTI2MzUwYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTI2MzUwYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5MjYzNTBgCgo8L2RldGFpbHM+CgotLS0KCi0gKipQcm9tb3RlciBtZXRoeWxhdGlvbiBvZiBBREFNVFMxIGFuZCBCTkMxIGFzIHBvdGVudGlhbCBiaW9tYXJrZXJzIGZvciBlYXJseSBkZXRlY3Rpb24gb2YgcGFuY3JlYXRpYyBjYW5jZXIgaW4gYmxvb2QqKgoKaHR0cHM6Ly9jbGluaWNhbGVwaWdlbmV0aWNzam91cm5hbC5iaW9tZWRjZW50cmFsLmNvbS9hcnRpY2xlcy8xMC4xMTg2L3MxMzE0OC0wMTktMDY1MC0wCgotLS0KCgoKCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKIyMjIEVwaWRlbWlvbG9neSwgU2NyZWVuaW5nLCBDYW5jZXIgUmlzayBGYWN0b3JzCgotLS0KCiMjIyMgUGFuY3JlYXMgRXBpZGVtaW9sb2d5IFNjcmVlbmluZyBDYW5jZXIgUmlzayBGYWN0b3JzCgpgYGB7ciBQYW5jcmVhcyBFcGlkZW1pb2xvZ3kgU2NyZWVuaW5nIENhbmNlciBSaXNrIEZhY3RvcnMsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKLS0tCgoKCiMjIyMgUGFuY3JlYXMgRXBpZGVtaW9sb2d5IFNjcmVlbmluZyBDYW5jZXIgUmlzayBGYWN0b3JzCgpgYGB7ciBQYW5jcmVhcyBFcGlkZW1pb2xvZ3kgU2NyZWVuaW5nIENhbmNlciBSaXNrIEZhY3RvcnMsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCgoKLS0tCgpgYGB7ciB6enogMzA3MjE2NjQsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzIxNjY0IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzIxNjY0JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzIxNjY0IDwtIHBhc3RlMChQTUlEXzMwNzIxNjY0JGpvdXJuYWwsJyAnLCBQTUlEXzMwNzIxNjY0JHllYXIsICcgJywgUE1JRF8zMDcyMTY2NCRtb250aCwnOycsIFBNSURfMzA3MjE2NjQkdm9sdW1lLCcoJywgUE1JRF8zMDcyMTY2NCRudW1iZXIsJyk6JywgUE1JRF8zMDcyMTY2NCRwYWdlcykKClB1Yk1lZF8zMDcyMTY2NCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzIxNjY0JGVwcmludCkKCmRvaV8zMDcyMTY2NCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzIxNjY0JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzIxNjY0IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzIxNjY0JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3MjE2NjQgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3MjE2NjQkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzIxNjY0IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3MjE2NjQkdGl0bGUgLCAiIFBNSUQ6IDMwNzIxNjY0ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDcyMTY2NCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzIxNjY0YCoKCmByIFB1Yk1lZF8zMDcyMTY2NGAKCmByIGFkZHRoaXNfaW5saW5lXzMwNzIxNjY0YAoKYHIgUE1JRF8zMDcyMTY2NCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzIxNjY0YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzIxNjY0YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3MjE2NjRgCgo8L2RldGFpbHM+CgotLS0KCi0gKipEZWxldGVyaW91cyBHZXJtbGluZSBNdXRhdGlvbnMgQXJlIGEgUmlzayBGYWN0b3IgZm9yIE5lb3BsYXN0aWMgUHJvZ3Jlc3Npb24gQW1vbmcgSGlnaC1SaXNrIEluZGl2aWR1YWxzIFVuZGVyZ29pbmcgUGFuY3JlYXRpYyBTdXJ2ZWlsbGFuY2UqKgoKaHR0cHM6Ly9hc2NvcHVicy5vcmcvZG9pL2Ficy8xMC4xMjAwL0pDTy4xOC4wMTUxMgoKLS0tCgoKCmBgYHtyIHp6eiAzMDk1MDg2MCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA5NTA4NjAgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5NTA4NjAnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5NTA4NjAgPC0gcGFzdGUwKFBNSURfMzA5NTA4NjAkam91cm5hbCwnICcsIFBNSURfMzA5NTA4NjAkeWVhciwgJyAnLCBQTUlEXzMwOTUwODYwJG1vbnRoLCc7JywgUE1JRF8zMDk1MDg2MCR2b2x1bWUsJygnLCBQTUlEXzMwOTUwODYwJG51bWJlciwnKTonLCBQTUlEXzMwOTUwODYwJHBhZ2VzKQoKUHViTWVkXzMwOTUwODYwIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5NTA4NjAkZXByaW50KQoKZG9pXzMwOTUwODYwIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5NTA4NjAkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5NTA4NjAgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5NTA4NjAkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk1MDg2MCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk1MDg2MCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5NTA4NjAgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk1MDg2MCR0aXRsZSAsICIgUE1JRDogMzA5NTA4NjAgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTUwODYwJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NTA4NjBgKgoKYHIgUHViTWVkXzMwOTUwODYwYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NTA4NjBgCgpgciBQTUlEXzMwOTUwODYwJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NTA4NjBgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NTA4NjBgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk1MDg2MGAKCjwvZGV0YWlscz4KCi0tLQoKCgoKIyMjIyBCaWxlIER1Y3QgRXBpZGVtaW9sb2d5IFNjcmVlbmluZyBDYW5jZXIgUmlzayBGYWN0b3JzCgpgYGB7ciBCaWxlIER1Y3QgRXBpZGVtaW9sb2d5IFNjcmVlbmluZyBDYW5jZXIgUmlzayBGYWN0b3JzLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpgYGAKCgotLS0KCmBgYHtyIDMwOTg1NjQzLCBpbmNsdWRlPUZBTFNFfQphcnRpY2xlcyA8LSByZWFkUkRTKCdhcnRpY2xlcy5yZHMnKQoKClBNSURfMzA5ODU2NDMgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5ODU2NDMnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5ODU2NDMgPC0gcGFzdGUwKFBNSURfMzA5ODU2NDMkam91cm5hbCwnICcsIFBNSURfMzA5ODU2NDMkeWVhciwgJyAnLCBQTUlEXzMwOTg1NjQzJG1vbnRoLCc7JywgUE1JRF8zMDk4NTY0MyR2b2x1bWUsJygnLCBQTUlEXzMwOTg1NjQzJG51bWJlciwnKTonLCBQTUlEXzMwOTg1NjQzJHBhZ2VzKQoKUHViTWVkXzMwOTg1NjQzIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5ODU2NDMkZXByaW50KQoKZG9pXzMwOTg1NjQzIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5ODU2NDMkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5ODU2NDMgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5ODU2NDMkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk4NTY0MyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk4NTY0MyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5ODU2NDMgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk4NTY0MyR0aXRsZSAsICIgUE1JRDogMzA5ODU2NDMgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmFydGljbGVzIDwtIGFydGljbGVzICU+JQoKYWRkX3JvdygKCkFydGljbGVDaXRhdGlvbiA9IFBNSURfMzA5ODU2NDMsClBNSUQgPSBQTUlEXzMwOTg1NjQzJGVwcmludCwKVGl0bGUgPSBQTUlEXzMwOTg1NjQzJHRpdGxlLAojIEF1dGhvciA9IFBNSURfMzA5ODU2NDMkYXV0aG9yLApBYnN0cmFjdCA9IFBNSURfMzA5ODU2NDMkYWJzdHJhY3QsCkpvdXJuYWwgPSBQTUlEXzMwOTg1NjQzJGpvdXJuYWwsClllYXIgPSBQTUlEXzMwOTg1NjQzJHllYXIsCk1vbnRoID0gUE1JRF8zMDk4NTY0MyRtb250aCwKVm9sdW1lID0gUE1JRF8zMDk4NTY0MyR2b2x1bWUsCk51bWJlciA9IFBNSURfMzA5ODU2NDMkbnVtYmVyLApQYWdlcyA9IFBNSURfMzA5ODU2NDMkcGFnZXMsClB1Yk1lZExpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLz90ZXJtPScsIFBNSURfMzA5ODU2NDMkZXByaW50KSwKRG9pTnVtYmVyID0gUE1JRF8zMDk4NTY0MyRkb2ksCkRvaUxpbmsgPSBwYXN0ZTAoJ2h0dHBzOi8vZG9pLm9yZy8nLCBQTUlEXzMwOTg1NjQzJGRvaSksCkxhbmd1YWdlID0gUE1JRF8zMDk4NTY0MyRsYW5ndWFnZSwKSVNTTiA9IFBNSURfMzA5ODU2NDMkaXNzbgopICU+JQoKdW5pcXVlKCkKCgpTeXMuc2xlZXAoMSkKCnNhdmVSRFMoYXJ0aWNsZXMsICdhcnRpY2xlcy5yZHMnKQoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5ODU2NDMkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk4NTY0M2AqCgpgciBQdWJNZWRfMzA5ODU2NDNgCgpgciBhZGR0aGlzX2lubGluZV8zMDk4NTY0M2AKCmByIFBNSURfMzA5ODU2NDMkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk4NTY0M2AgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk4NTY0M2AKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTg1NjQzYAoKPC9kZXRhaWxzPgoKLS0tCgoKCiMjIyMgUGFuTkVUIEVwaWRlbWlvbG9neSBTY3JlZW5pbmcgQ2FuY2VyIFJpc2sgRmFjdG9ycwoKYGBge3IgUGFuTkVUIEVwaWRlbWlvbG9neSBTY3JlZW5pbmcgQ2FuY2VyIFJpc2sgRmFjdG9ycywgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KYGBgCgotLS0KCgojIyMjIFBhbk5FVCBFcGlkZW1pb2xvZ3kgU2NyZWVuaW5nIENhbmNlciBSaXNrIEZhY3RvcnMKCmBgYHtyIFBhbk5FVCBFcGlkZW1pb2xvZ3kgU2NyZWVuaW5nIENhbmNlciBSaXNrIEZhY3RvcnMsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCi0tLQoKYGBge3Igenp6IDMwNzI2NzcyLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDcyNjc3MiA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDcyNjc3MicsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDcyNjc3MiA8LSBwYXN0ZTAoUE1JRF8zMDcyNjc3MiRqb3VybmFsLCcgJywgUE1JRF8zMDcyNjc3MiR5ZWFyLCAnICcsIFBNSURfMzA3MjY3NzIkbW9udGgsJzsnLCBQTUlEXzMwNzI2NzcyJHZvbHVtZSwnKCcsIFBNSURfMzA3MjY3NzIkbnVtYmVyLCcpOicsIFBNSURfMzA3MjY3NzIkcGFnZXMpCgpQdWJNZWRfMzA3MjY3NzIgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDcyNjc3MiRlcHJpbnQpCgpkb2lfMzA3MjY3NzIgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDcyNjc3MiRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDcyNjc3MiA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDcyNjc3MiRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNzI2NzcyIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNzI2NzcyJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDcyNjc3MiA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNzI2NzcyJHRpdGxlICwgIiBQTUlEOiAzMDcyNjc3MiAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA3MjY3NzIkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDcyNjc3MmAqCgpgciBQdWJNZWRfMzA3MjY3NzJgCgpgciBhZGR0aGlzX2lubGluZV8zMDcyNjc3MmAKCmByIFBNSURfMzA3MjY3NzIkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDcyNjc3MmAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDcyNjc3MmAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNzI2NzcyYAoKPC9kZXRhaWxzPgoKLS0tCgoKCgoKCgoKCgotICoqR2FzdHJvZW50ZXJvcGFuY3JlYXRpYyBuZXVyb2VuZG9jcmluZSB0dW1vcnMgaW4gSWNlbGFuZDogYSBwb3B1bGF0aW9uLWJhc2VkIHN0dWR5LioqCgpodHRwczovL3d3dy5zZW1hbnRpY3NjaG9sYXIub3JnL3BhcGVyL0dhc3Ryb2VudGVyb3BhbmNyZWF0aWMtbmV1cm9lbmRvY3JpbmUtdHVtb3JzLWluLWEtR3VkbXVuZHNkb3R0aXItTW9lbGxlci9kZTViOTliMjE0OTM5ZjEwYjkxM2YyZDY4OGZiZGFkNTc2NzFhOWQwCgotLS0KCmBgYHtyIHp6eiAzMDk1NDIzMCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA5NTQyMzAgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5NTQyMzAnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5NTQyMzAgPC0gcGFzdGUwKFBNSURfMzA5NTQyMzAkam91cm5hbCwnICcsIFBNSURfMzA5NTQyMzAkeWVhciwgJyAnLCBQTUlEXzMwOTU0MjMwJG1vbnRoLCc7JywgUE1JRF8zMDk1NDIzMCR2b2x1bWUsJygnLCBQTUlEXzMwOTU0MjMwJG51bWJlciwnKTonLCBQTUlEXzMwOTU0MjMwJHBhZ2VzKQoKUHViTWVkXzMwOTU0MjMwIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5NTQyMzAkZXByaW50KQoKZG9pXzMwOTU0MjMwIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5NTQyMzAkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5NTQyMzAgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5NTQyMzAkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk1NDIzMCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk1NDIzMCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5NTQyMzAgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk1NDIzMCR0aXRsZSAsICIgUE1JRDogMzA5NTQyMzAgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTU0MjMwJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NTQyMzBgKgoKYHIgUHViTWVkXzMwOTU0MjMwYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NTQyMzBgCgpgciBQTUlEXzMwOTU0MjMwJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NTQyMzBgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NTQyMzBgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk1NDIzMGAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTYxNTU2LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDk2MTU1NiA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk2MTU1NicsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk2MTU1NiA8LSBwYXN0ZTAoUE1JRF8zMDk2MTU1NiRqb3VybmFsLCcgJywgUE1JRF8zMDk2MTU1NiR5ZWFyLCAnICcsIFBNSURfMzA5NjE1NTYkbW9udGgsJzsnLCBQTUlEXzMwOTYxNTU2JHZvbHVtZSwnKCcsIFBNSURfMzA5NjE1NTYkbnVtYmVyLCcpOicsIFBNSURfMzA5NjE1NTYkcGFnZXMpCgpQdWJNZWRfMzA5NjE1NTYgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk2MTU1NiRlcHJpbnQpCgpkb2lfMzA5NjE1NTYgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk2MTU1NiRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk2MTU1NiA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk2MTU1NiRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTYxNTU2IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTYxNTU2JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk2MTU1NiA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTYxNTU2JHRpdGxlICwgIiBQTUlEOiAzMDk2MTU1NiAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5NjE1NTYkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk2MTU1NmAqCgpgciBQdWJNZWRfMzA5NjE1NTZgCgpgciBhZGR0aGlzX2lubGluZV8zMDk2MTU1NmAKCmByIFBNSURfMzA5NjE1NTYkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk2MTU1NmAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk2MTU1NmAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTYxNTU2YAoKPC9kZXRhaWxzPgoKLS0tCgoKCgoKIyMjIyBBbXB1bGxhIG9mIFZhdGVyIEVwaWRlbWlvbG9neSBTY3JlZW5pbmcgQ2FuY2VyIFJpc2sgRmFjdG9ycwoKYGBge3IgQW1wdWxsYSBvZiBWYXRlciBFcGlkZW1pb2xvZ3kgU2NyZWVuaW5nIENhbmNlciBSaXNrIEZhY3RvcnMsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmBgYAoKCi0tLQoKCmBgYHtyIHp6eiAzMDU2MTgxOCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA1NjE4MTggPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA1NjE4MTgnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA1NjE4MTggPC0gcGFzdGUwKFBNSURfMzA1NjE4MTgkam91cm5hbCwnICcsIFBNSURfMzA1NjE4MTgkeWVhciwgJyAnLCBQTUlEXzMwNTYxODE4JG1vbnRoLCc7JywgUE1JRF8zMDU2MTgxOCR2b2x1bWUsJygnLCBQTUlEXzMwNTYxODE4JG51bWJlciwnKTonLCBQTUlEXzMwNTYxODE4JHBhZ2VzKQoKUHViTWVkXzMwNTYxODE4IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA1NjE4MTgkZXByaW50KQoKZG9pXzMwNTYxODE4IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA1NjE4MTgkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA1NjE4MTggPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA1NjE4MTgkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDU2MTgxOCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDU2MTgxOCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA1NjE4MTggPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDU2MTgxOCR0aXRsZSAsICIgUE1JRDogMzA1NjE4MTggIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNTYxODE4JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA1NjE4MThgKgoKYHIgUHViTWVkXzMwNTYxODE4YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA1NjE4MThgCgpgciBQTUlEXzMwNTYxODE4JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA1NjE4MThgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA1NjE4MThgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDU2MTgxOGAKCjwvZGV0YWlscz4KCi0tLQoKCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKCgoKLS0tCgoKCgoKCgoKCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgotLS0KCiMjIyBQYW5jcmVhcyAKCi0tLQoKLSAqKlRoZSBVbnVzdWFsIFN1c3BlY3RzIG9mIHRoZSBQYW5jcmVhcy1VbmRlcnN0YW5kaW5nIFBhbmNyZWF0aWMgQWNpbmFyIENlbGwgQ2FyY2lub21hcyBhbmQgQWRlbm9tYXMuKioKCmh0dHBzOi8vd3d3LnNlbWFudGljc2Nob2xhci5vcmcvcGFwZXIvVGhlLVVudXN1YWwtU3VzcGVjdHMtb2YtdGhlLVBhbmNyZWFzLVVuZGVyc3RhbmRpbmctTHV1LUZhaGxidXNjaC81ZGRhOWQ2ZmM5MzdhMDE2NmMwMmQ4MTRhODNmMWIyNjE2MjY1MDZlCgoKLS0tCgoKLSAqKkhlcGF0b2JpbGlhcnkgYW5kIHBhbmNyZWF0aWMgbWFuaWZlc3RhdGlvbnMgaW4gaW5mbGFtbWF0b3J5IGJvd2VsIGRpc2Vhc2VzOiBhIHJlZmVycmFsIGNlbnRlciBzdHVkeSoqCgoKaHR0cHM6Ly93d3cuc2VtYW50aWNzY2hvbGFyLm9yZy9wYXBlci9IZXBhdG9iaWxpYXJ5LWFuZC1wYW5jcmVhdGljLW1hbmlmZXN0YXRpb25zLWluLWEtRm91c2VraXMtS2F0c2Fub3MvMTQyMzkxZTZmNDQxN2Y4MmE1YTk5YjlmMzM4MjAyZmZlZGIzMWQyYwoKCi0tLQoKCi0gKipNaXhlZCBkdWN0YWwtYWNpbmFyIGNlbGwgY2FyY2lub21hIG9mIHRoZSBwYW5jcmVhczogQSBjYXNlIHJlcG9ydC4qKgoKCmh0dHBzOi8vd3d3LnNlbWFudGljc2Nob2xhci5vcmcvcGFwZXIvTWl4ZWQtZHVjdGFsLWFjaW5hci1jZWxsLWNhcmNpbm9tYS1vZi10aGUtcGFuY3JlYXMlM0EtU2hpZ2FraS1IaXNha2EvYjE4ZWIxMWZkNmRmMDE5NzA1ZTljNzVjN2FjZjEwMjBlYmIxMzc5YgoKCi0tLQoKCgotICoqVGhlIEl0YWxpYW4gUmFyZSBQYW5jcmVhdGljIEV4b2NyaW5lIENhbmNlciBJbml0aWF0aXZlKioKCmh0dHBzOi8vam91cm5hbHMuc2FnZXB1Yi5jb20vZG9pL2Ficy8xMC4xMTc3LzAzMDA4OTE2MTk4Mzk0NjEKCi0tLQoKLSAqKlBhbmNyZWF0aWMgcGF0aG9sb2d5OiB3aGVyZSBhcmUgd2UgaW4gMjAxOT8qKgoKaHR0cHM6Ly93d3cuc3VyZ2VyeWpvdXJuYWwuY28udWsvYXJ0aWNsZS9TMDI2My05MzE5KDE5KTMwMDcwLTUvYWJzdHJhY3QKCgoKCgpgYGB7ciB6enogMzA5NzU0ODEsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTc1NDgxIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTc1NDgxJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTc1NDgxIDwtIHBhc3RlMChQTUlEXzMwOTc1NDgxJGpvdXJuYWwsJyAnLCBQTUlEXzMwOTc1NDgxJHllYXIsICcgJywgUE1JRF8zMDk3NTQ4MSRtb250aCwnOycsIFBNSURfMzA5NzU0ODEkdm9sdW1lLCcoJywgUE1JRF8zMDk3NTQ4MSRudW1iZXIsJyk6JywgUE1JRF8zMDk3NTQ4MSRwYWdlcykKClB1Yk1lZF8zMDk3NTQ4MSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTc1NDgxJGVwcmludCkKCmRvaV8zMDk3NTQ4MSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTc1NDgxJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTc1NDgxIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTc1NDgxJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NzU0ODEgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NzU0ODEkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTc1NDgxIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NzU0ODEkdGl0bGUgLCAiIFBNSUQ6IDMwOTc1NDgxICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk3NTQ4MSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTc1NDgxYCoKCmByIFB1Yk1lZF8zMDk3NTQ4MWAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTc1NDgxYAoKYHIgUE1JRF8zMDk3NTQ4MSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTc1NDgxYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTc1NDgxYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5NzU0ODFgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIHp6eiAzMDk3MzQ2NywgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA5NzM0NjcgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA5NzM0NjcnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA5NzM0NjcgPC0gcGFzdGUwKFBNSURfMzA5NzM0Njckam91cm5hbCwnICcsIFBNSURfMzA5NzM0NjckeWVhciwgJyAnLCBQTUlEXzMwOTczNDY3JG1vbnRoLCc7JywgUE1JRF8zMDk3MzQ2NyR2b2x1bWUsJygnLCBQTUlEXzMwOTczNDY3JG51bWJlciwnKTonLCBQTUlEXzMwOTczNDY3JHBhZ2VzKQoKUHViTWVkXzMwOTczNDY3IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA5NzM0NjckZXByaW50KQoKZG9pXzMwOTczNDY3IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA5NzM0NjckZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA5NzM0NjcgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA5NzM0NjckZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDk3MzQ2NyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDk3MzQ2NyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA5NzM0NjcgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDk3MzQ2NyR0aXRsZSAsICIgUE1JRDogMzA5NzM0NjcgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwOTczNDY3JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA5NzM0NjdgKgoKYHIgUHViTWVkXzMwOTczNDY3YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA5NzM0NjdgCgpgciBQTUlEXzMwOTczNDY3JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA5NzM0NjdgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA5NzM0NjdgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDk3MzQ2N2AKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTczNDcwLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDk3MzQ3MCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk3MzQ3MCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk3MzQ3MCA8LSBwYXN0ZTAoUE1JRF8zMDk3MzQ3MCRqb3VybmFsLCcgJywgUE1JRF8zMDk3MzQ3MCR5ZWFyLCAnICcsIFBNSURfMzA5NzM0NzAkbW9udGgsJzsnLCBQTUlEXzMwOTczNDcwJHZvbHVtZSwnKCcsIFBNSURfMzA5NzM0NzAkbnVtYmVyLCcpOicsIFBNSURfMzA5NzM0NzAkcGFnZXMpCgpQdWJNZWRfMzA5NzM0NzAgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk3MzQ3MCRlcHJpbnQpCgpkb2lfMzA5NzM0NzAgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk3MzQ3MCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk3MzQ3MCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk3MzQ3MCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTczNDcwIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTczNDcwJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk3MzQ3MCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTczNDcwJHRpdGxlICwgIiBQTUlEOiAzMDk3MzQ3MCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5NzM0NzAkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk3MzQ3MGAqCgpgciBQdWJNZWRfMzA5NzM0NzBgCgpgciBhZGR0aGlzX2lubGluZV8zMDk3MzQ3MGAKCmByIFBNSURfMzA5NzM0NzAkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk3MzQ3MGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk3MzQ3MGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTczNDcwYAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciB6enogMzA5NDYwOTAsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwOTQ2MDkwIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwOTQ2MDkwJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwOTQ2MDkwIDwtIHBhc3RlMChQTUlEXzMwOTQ2MDkwJGpvdXJuYWwsJyAnLCBQTUlEXzMwOTQ2MDkwJHllYXIsICcgJywgUE1JRF8zMDk0NjA5MCRtb250aCwnOycsIFBNSURfMzA5NDYwOTAkdm9sdW1lLCcoJywgUE1JRF8zMDk0NjA5MCRudW1iZXIsJyk6JywgUE1JRF8zMDk0NjA5MCRwYWdlcykKClB1Yk1lZF8zMDk0NjA5MCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwOTQ2MDkwJGVwcmludCkKCmRvaV8zMDk0NjA5MCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwOTQ2MDkwJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwOTQ2MDkwIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwOTQ2MDkwJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA5NDYwOTAgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA5NDYwOTAkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwOTQ2MDkwIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA5NDYwOTAkdGl0bGUgLCAiIFBNSUQ6IDMwOTQ2MDkwICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDk0NjA5MCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwOTQ2MDkwYCoKCmByIFB1Yk1lZF8zMDk0NjA5MGAKCmByIGFkZHRoaXNfaW5saW5lXzMwOTQ2MDkwYAoKYHIgUE1JRF8zMDk0NjA5MCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwOTQ2MDkwYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwOTQ2MDkwYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA5NDYwOTBgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIHp6eiAyODM4MjQyMiwgaW5jbHVkZT1GQUxTRX0KClBNSURfMjgzODI0MjIgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMjgzODI0MjInLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMjgzODI0MjIgPC0gcGFzdGUwKFBNSURfMjgzODI0MjIkam91cm5hbCwnICcsIFBNSURfMjgzODI0MjIkeWVhciwgJyAnLCBQTUlEXzI4MzgyNDIyJG1vbnRoLCc7JywgUE1JRF8yODM4MjQyMiR2b2x1bWUsJygnLCBQTUlEXzI4MzgyNDIyJG51bWJlciwnKTonLCBQTUlEXzI4MzgyNDIyJHBhZ2VzKQoKUHViTWVkXzI4MzgyNDIyIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMjgzODI0MjIkZXByaW50KQoKZG9pXzI4MzgyNDIyIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMjgzODI0MjIkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMjgzODI0MjIgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMjgzODI0MjIkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8yODM4MjQyMiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8yODM4MjQyMiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMjgzODI0MjIgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8yODM4MjQyMiR0aXRsZSAsICIgUE1JRDogMjgzODI0MjIgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzI4MzgyNDIyJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMjgzODI0MjJgKgoKYHIgUHViTWVkXzI4MzgyNDIyYAoKYHIgYWRkdGhpc19pbmxpbmVfMjgzODI0MjJgCgpgciBQTUlEXzI4MzgyNDIyJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMjgzODI0MjJgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMjgzODI0MjJgCgpgciBhbHRtZXRyaWNCYWRnZV8yODM4MjQyMmAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTQwNTIyLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDk0MDUyMiA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk0MDUyMicsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk0MDUyMiA8LSBwYXN0ZTAoUE1JRF8zMDk0MDUyMiRqb3VybmFsLCcgJywgUE1JRF8zMDk0MDUyMiR5ZWFyLCAnICcsIFBNSURfMzA5NDA1MjIkbW9udGgsJzsnLCBQTUlEXzMwOTQwNTIyJHZvbHVtZSwnKCcsIFBNSURfMzA5NDA1MjIkbnVtYmVyLCcpOicsIFBNSURfMzA5NDA1MjIkcGFnZXMpCgpQdWJNZWRfMzA5NDA1MjIgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk0MDUyMiRlcHJpbnQpCgpkb2lfMzA5NDA1MjIgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk0MDUyMiRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk0MDUyMiA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk0MDUyMiRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTQwNTIyIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTQwNTIyJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk0MDUyMiA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTQwNTIyJHRpdGxlICwgIiBQTUlEOiAzMDk0MDUyMiAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5NDA1MjIkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk0MDUyMmAqCgpgciBQdWJNZWRfMzA5NDA1MjJgCgpgciBhZGR0aGlzX2lubGluZV8zMDk0MDUyMmAKCmByIFBNSURfMzA5NDA1MjIkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk0MDUyMmAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk0MDUyMmAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTQwNTIyYAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciB6enogMjkyMjMzNjIsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzI5MjIzMzYyIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzI5MjIzMzYyJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzI5MjIzMzYyIDwtIHBhc3RlMChQTUlEXzI5MjIzMzYyJGpvdXJuYWwsJyAnLCBQTUlEXzI5MjIzMzYyJHllYXIsICcgJywgUE1JRF8yOTIyMzM2MiRtb250aCwnOycsIFBNSURfMjkyMjMzNjIkdm9sdW1lLCcoJywgUE1JRF8yOTIyMzM2MiRudW1iZXIsJyk6JywgUE1JRF8yOTIyMzM2MiRwYWdlcykKClB1Yk1lZF8yOTIyMzM2MiA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzI5MjIzMzYyJGVwcmludCkKCmRvaV8yOTIyMzM2MiA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzI5MjIzMzYyJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzI5MjIzMzYyIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzI5MjIzMzYyJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMjkyMjMzNjIgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMjkyMjMzNjIkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzI5MjIzMzYyIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMjkyMjMzNjIkdGl0bGUgLCAiIFBNSUQ6IDI5MjIzMzYyICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8yOTIyMzM2MiR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzI5MjIzMzYyYCoKCmByIFB1Yk1lZF8yOTIyMzM2MmAKCmByIGFkZHRoaXNfaW5saW5lXzI5MjIzMzYyYAoKYHIgUE1JRF8yOTIyMzM2MiRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzI5MjIzMzYyYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzI5MjIzMzYyYAoKYHIgYWx0bWV0cmljQmFkZ2VfMjkyMjMzNjJgCgo8L2RldGFpbHM+CgotLS0KCgoKLSAqKkRldmVsb3BtZW50IGFuZCB2YWxpZGF0aW9uIG9mIGEgcHJvZ25vc3RpYyBtb2RlbCB0byBwcmVkaWN0IHRoZSBwcm9nbm9zaXMgb2YgcGF0aWVudHMgd2hvIHVuZGVyd2VudCBjaGVtb3RoZXJhcHkgYW5kIHJlc2VjdGlvbiBvZiBwYW5jcmVhdGljIGFkZW5vY2FyY2lub21hOiBhIGxhcmdlIGludGVybmF0aW9uYWwgcG9wdWxhdGlvbi1iYXNlZCBjb2hvcnQgc3R1ZHkqKgoKaHR0cHM6Ly9ibWNtZWRpY2luZS5iaW9tZWRjZW50cmFsLmNvbS9hcnRpY2xlcy8xMC4xMTg2L3MxMjkxNi0wMTktMTMwNC15CgotLS0KCi0gKipQcm9ncmVzcyBpbiByZXNlYXJjaCAgb24gcGFuY3JlYXRpYyAgY2FuY2VyIHJlbGF0ZWQgc2lnbmFsaW5nIHBhdGh3YXkqKgoKaHR0cDovL3d3dy5jYW5jZXJjZWxscmVzZWFyY2gub3JnL1BERi8yMDE5MjEwOC5wZGYKCgotLS0KCmBgYHtyIHp6eiAyOTQ5NjM5OSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMjk0OTYzOTkgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMjk0OTYzOTknLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMjk0OTYzOTkgPC0gcGFzdGUwKFBNSURfMjk0OTYzOTkkam91cm5hbCwnICcsIFBNSURfMjk0OTYzOTkkeWVhciwgJyAnLCBQTUlEXzI5NDk2Mzk5JG1vbnRoLCc7JywgUE1JRF8yOTQ5NjM5OSR2b2x1bWUsJygnLCBQTUlEXzI5NDk2Mzk5JG51bWJlciwnKTonLCBQTUlEXzI5NDk2Mzk5JHBhZ2VzKQoKUHViTWVkXzI5NDk2Mzk5IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMjk0OTYzOTkkZXByaW50KQoKZG9pXzI5NDk2Mzk5IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMjk0OTYzOTkkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMjk0OTYzOTkgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMjk0OTYzOTkkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8yOTQ5NjM5OSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8yOTQ5NjM5OSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMjk0OTYzOTkgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8yOTQ5NjM5OSR0aXRsZSAsICIgUE1JRDogMjk0OTYzOTkgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzI5NDk2Mzk5JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMjk0OTYzOTlgKgoKYHIgUHViTWVkXzI5NDk2Mzk5YAoKYHIgYWRkdGhpc19pbmxpbmVfMjk0OTYzOTlgCgpgciBQTUlEXzI5NDk2Mzk5JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMjk0OTYzOTlgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMjk0OTYzOTlgCgpgciBhbHRtZXRyaWNCYWRnZV8yOTQ5NjM5OWAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwOTczNDcxLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDk3MzQ3MSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDk3MzQ3MScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDk3MzQ3MSA8LSBwYXN0ZTAoUE1JRF8zMDk3MzQ3MSRqb3VybmFsLCcgJywgUE1JRF8zMDk3MzQ3MSR5ZWFyLCAnICcsIFBNSURfMzA5NzM0NzEkbW9udGgsJzsnLCBQTUlEXzMwOTczNDcxJHZvbHVtZSwnKCcsIFBNSURfMzA5NzM0NzEkbnVtYmVyLCcpOicsIFBNSURfMzA5NzM0NzEkcGFnZXMpCgpQdWJNZWRfMzA5NzM0NzEgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDk3MzQ3MSRlcHJpbnQpCgpkb2lfMzA5NzM0NzEgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDk3MzQ3MSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDk3MzQ3MSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDk3MzQ3MSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwOTczNDcxIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwOTczNDcxJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDk3MzQ3MSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwOTczNDcxJHRpdGxlICwgIiBQTUlEOiAzMDk3MzQ3MSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA5NzM0NzEkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDk3MzQ3MWAqCgpgciBQdWJNZWRfMzA5NzM0NzFgCgpgciBhZGR0aGlzX2lubGluZV8zMDk3MzQ3MWAKCmByIFBNSURfMzA5NzM0NzEkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDk3MzQ3MWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDk3MzQ3MWAKCmByIGFsdG1ldHJpY0JhZGdlXzMwOTczNDcxYAoKPC9kZXRhaWxzPgoKLS0tCgotICoqTWV0YXN0YXRpYyBUdW1vcnMgdG8gdGhlIFBhbmNyZWFzLCBhIFNpbmdsZSBDZW50ZXIgU3R1ZHkuKioKCmh0dHBzOi8vd3d3LnNlbWFudGljc2Nob2xhci5vcmcvcGFwZXIvTWV0YXN0YXRpYy1UdW1vcnMtdG8tdGhlLVBhbmNyZWFzJTJDLWEtU2luZ2xlLUNlbnRlci1HZXJhbWl6YWRlaC1LYXNoa29vZS8yZGNmZjIzYzg5M2IyNTUyNmQ4YzFiOTc5MzcyYTliYjZlYjkyZDQwCgotLS0KCi0gKipHbHVjb3NlIG1ldGFib2xpc20gZHVyaW5nIHR1bW9yaWdlbmVzaXMgaW4gdGhlIGdlbmV0aWMgbW91c2UgbW9kZWwgb2YgcGFuY3JlYXRpYyBjYW5jZXIqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEwMDcvczAwNTkyLTAxOS0wMTMzNS00CgotLS0KCi0gKipUaGVyYXBldXRpYyBjaGFsbGVuZ2VzIGFuZCBjdXJyZW50IGltbXVub21vZHVsYXRvcnkgc3RyYXRlZ2llcyBpbiB0YXJnZXRpbmcgdGhlIGltbXVub3N1cHByZXNzaXZlIHBhbmNyZWF0aWMgdHVtb3IgbWljcm9lbnZpcm9ubWVudCoqCgpodHRwczovL2plY2NyLmJpb21lZGNlbnRyYWwuY29tL2FydGljbGVzLzEwLjExODYvczEzMDQ2LTAxOS0xMTUzLTgKCi0tLQoKLSAqKkVwaWRlbWlvbG9neSwgVHVtb3IgQ2hhcmFjdGVyaXN0aWNzLCBhbmQgU3Vydml2YWwgaW4gUGF0aWVudHMgV2l0aCBQcmltYXJ5IFBhbmNyZWF0aWMgTHltcGhvbWE6IEEgTGFyZ2UgUG9wdWxhdGlvbi1iYXNlZCBTdHVkeSBVc2luZyB0aGUgU0VFUiBEYXRhYmFzZS4qKgoKaHR0cHM6Ly93d3cuc2VtYW50aWNzY2hvbGFyLm9yZy9wYXBlci9FcGlkZW1pb2xvZ3klMkMtVHVtb3ItQ2hhcmFjdGVyaXN0aWNzJTJDLWFuZC1TdXJ2aXZhbC1BLU11a2hpamEtTmFncGFsLzViOGFkY2ZiZmM2ZTliMzIwMmUxZjEyMjYzN2VjM2EzZDczMzdkNDYKCi0tLQoKLSAqKlJpc2sgYW5kIFByZWRpY3RvcnMgb2YgUG9zdG9wZXJhdGl2ZSBNb3JiaWRpdHkgYW5kIE1vcnRhbGl0eSBBZnRlciBQYW5jcmVhdGljb2R1b2RlbmVjdG9teSBmb3IgUGFuY3JlYXRpYyBOZXVyb2VuZG9jcmluZSBOZW9wbGFzbXM6IEEgQ29tcGFyYXRpdmUgU3R1ZHkgV2l0aCBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYS4qKgoKaHR0cHM6Ly93d3cuc2VtYW50aWNzY2hvbGFyLm9yZy9wYXBlci9SaXNrLWFuZC1QcmVkaWN0b3JzLW9mLVBvc3RvcGVyYXRpdmUtTW9yYmlkaXR5LWFuZC1QYXJ0ZWxsaS1UYW1idXJyaW5vL2U1YmM2YzI4ZWU5NDk3ZDQ4MjJmY2UyMmMwNTM5ZjhjM2E4NDM1YTUKCgotLS0KCgpNb3VzZSBNb2RlbHMgU2hlZCBMaWdodCBvbiB0aGUgU0xJVC9ST0JPIFBhdGh3YXkgaW4gUGFuY3JlYXRpYyBEZXZlbG9wbWVudCBhbmQgQ2FuY2VyLgoKaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMzA4OTgyNjEKCkNvbXBhcmlzb24gb2YgaW1tdW5lIGluZmlsdHJhdGVzIGluIG1lbGFub21hIGFuZCBwYW5jcmVhdGljIGNhbmNlciBoaWdobGlnaHRzIFZJU1RBIGFzIGEgcG90ZW50aWFsIHRhcmdldCBpbiBwYW5jcmVhdGljIGNhbmNlci4KCmh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLzMwNjM1NDI1CgpUdW1vciBtaWNyb2Vudmlyb25tZW50IHBhcnRpY2lwYXRlcyBpbiBtZXRhc3Rhc2lzIG9mIHBhbmNyZWF0aWMgY2FuY2VyLgoKaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMzAwNjA3NTUKCgpEZWxldGVyaW91cyBHZXJtbGluZSBNdXRhdGlvbnMgQXJlIGEgUmlzayBGYWN0b3IgZm9yIE5lb3BsYXN0aWMgUHJvZ3Jlc3Npb24gQW1vbmcgSGlnaC1SaXNrIEluZGl2aWR1YWxzIFVuZGVyZ29pbmcgUGFuY3JlYXRpYyBTdXJ2ZWlsbGFuY2UKCmh0dHBzOi8vYXNjb3B1YnMub3JnL2RvaS9mdWxsLzEwLjEyMDAvSkNPLjE4LjAxNTEyCgpTdHJvbWFsIGZpYnJvbmVjdGluIGV4cHJlc3Npb24gaW4gcGF0aWVudHMgd2l0aCByZXNlY3RlZCBwYW5jcmVhdGljIGR1Y3RhbCBhZGVub2NhcmNpbm9tYS4KCmh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLzMwNzM2ODA3CgpDbGluaWNhbCBhc3Nlc3NtZW50IG9mIHRoZSBHTkFTIG11dGF0aW9uIHN0YXR1cyBpbiBwYXRpZW50cyB3aXRoIGludHJhZHVjdGFsIHBhcGlsbGFyeSBtdWNpbm91cyBuZW9wbGFzbSBvZiB0aGUgcGFuY3JlYXMKCmh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vYXJ0aWNsZS8xMC4xMDA3L3MwMDU5NS0wMTktMDE3OTctNwoKCkFkaXBvcGhpbGluIGV4cHJlc3Npb24gaXMgYW4gaW5kaWNhdG9yIG9mIHBvb3IgcHJvZ25vc2lzIGluIHBhdGllbnRzIHdpdGggcGFuY3JlYXRpYyBkdWN0YWwgYWRlbm9jYXJjaW5vbWE6IEFuIGltbXVub2hpc3RvY2hlbWljYWwgYW5hbHlzaXMuCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8zMDg3OTk2OAoKCkVucmljaG1lbnQgb2Ygb3JhbCBtaWNyb2Jpb3RhIGluIGVhcmx5IGN5c3RpYyBwcmVjdXJzb3JzIHRvIGludmFzaXZlIHBhbmNyZWF0aWMgY2FuY2VyCgpodHRwczovL2d1dC5ibWouY29tL2NvbnRlbnQvZWFybHkvMjAxOS8wMy8xMy9ndXRqbmwtMjAxOC0zMTc0NTguYWJzdHJhY3QKCi0tLQoKQWJzdHJhY3RzIGZyb20gVVNDQVAgMjAxOTogUGFuY3JlYXMsIEdhbGxibGFkZGVyLCBBbXB1bGxhLCBhbmQgRXh0cmEtSGVwYXRpYyBCaWxpYXJ5IFRyZWUgKDE2NjctMTczNCkuCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8zMDg4NjI1MwoKQWJzdHJhY3RzIGZyb20gVVNDQVAgMjAxOTogUGFuY3JlYXMsIEdhbGxibGFkZGVyLCBBbXB1bGxhLCBhbmQgRXh0cmEtSGVwYXRpYyBCaWxpYXJ5IFRyZWUgKDE2NjctMTczNCkuCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8zMDg4NjI4MwoKU3Ryb21hbCBwcm90ZWluIM6yaWctaDMgcmVwcm9ncmFtbWVzIHR1bW91ciBtaWNyb2Vudmlyb25tZW50IGluIHBhbmNyZWF0aWMgY2FuY2VyLgoKaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMzA0MTUyMzQKCgoKCgotLS0KCi0gQ2hyb21hdGluIHJlbW9kZWxsaW5nIGNvbnRyb2xzIHBhbmNyZWF0aWMgdGlzc3VlIGZhdGUuCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8zMDg5MDU0MwoKLSBGT0xGSVJJTk9YIEFkanV2YW50IFRoZXJhcHkgZm9yIFBhbmNyZWF0aWMgQ2FuY2VyLiBSZXBseS4KaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMzA4OTM1NDQKCi0gRk9MRklSSU5PWCBBZGp1dmFudCBUaGVyYXB5IGZvciBQYW5jcmVhdGljIENhbmNlci4KaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMzA4OTM1NDMKCgoKCi0tLQoKLSAqKkltbXVub2dsb2J1bGluIEc0LVJlbGF0ZWQgUGFuY3JlYXRpdGlzOiBPdXIgRXhwZXJpZW5jZSBpbiBhIEdlcm1hbiBDb2hvcnQgb2YgNTkgUGF0aWVudHMuKioKCmh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLzMwODU1NDMxCgotLS0KCi0gKipBZ2dyZXNzaXZlIEZpYnJvbWF0b3NpcyBvZiB0aGUgUGFuY3JlYXM6IEEgUmFyZSBDYXVzZSBvZiBJbmNvbXBsZXRlIER1b2RlbmFsIE9ic3RydWN0aW9uLioqCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8zMDg1NTQzMAoKLS0tCgotICoqRXZhbHVhdGlvbiBvZiBlZmZpY2FjeSBvZiBwYW5jcmVhdGljIGp1aWNlIGN5dG9sb2d5IGZvciByaXNrIGNsYXNzaWZpY2F0aW9uIGFjY29yZGluZyB0byBpbnRlcm5hdGlvbmFsIGNvbnNlbnN1cyBndWlkZWxpbmVzIGluIHBhdGllbnRzIHdpdGggaW50cmFkdWN0YWwgcGFwaWxsYXJ5IG11Y2lub3VzIG5lb3BsYXNtOyBhIHJldHJvc3BlY3RpdmUgc3R1ZHkqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMTQyNDM5MDMxOTMwMDQ5MwoKLS0tCgotICoqQ29tYmluYXRpb24gb2YgRVJLIGFuZCBhdXRvcGhhZ3kgaW5oaWJpdGlvbiBhcyBhIHRyZWF0bWVudCBhcHByb2FjaCBmb3IgcGFuY3JlYXRpYyBjYW5jZXIqKgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDE1OTEtMDE5LTAzNjgtOAoKCi0tLQoKLSAqKlBhbmNyZWF0aWMgSnVpY2UgRXhvc29tYWwgTWljcm9STkFzIGFzIEJpb21hcmtlcnMgZm9yIERldGVjdGlvbiBvZiBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSoqCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMzMTQxNTcwM19QYW5jcmVhdGljX0p1aWNlX0V4b3NvbWFsX01pY3JvUk5Bc19hc19CaW9tYXJrZXJzX2Zvcl9EZXRlY3Rpb25fb2ZfUGFuY3JlYXRpY19EdWN0YWxfQWRlbm9jYXJjaW5vbWEKCgotLS0KCi0gKipUYXJnZXRlZCBuZXh0IGdlbmVyYXRpb24gc2VxdWVuY2luZyBvZiBwYW5jcmVhdGljIHNvbGlkIHBzZXVkb3BhcGlsbGFyeSBuZW9wbGFzbXMgc2hvdyBtdXRhdGlvbnMgaW4gV250IHNpZ25hbGluZyBwYXRod2F5IGdlbmVzKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMTExL3Bpbi4xMjc3OAoKLS0tCgotICoqUmVhbC10aW1lIFRhcmdldGVkIEdlbm9tZSBQcm9maWxlIEFuYWx5c2lzIG9mIFBhbmNyZWF0aWMgRHVjdGFsIEFkZW5vY2FyY2lub21hcyBJZGVudGlmaWVzIEdlbmV0aWMgQWx0ZXJhdGlvbnMgdGhhdCBNaWdodCBiZSBUYXJnZXRlZCB3aXRoIEV4aXN0aW5nIERydWdzIG9yIFVzZWQgYXMgQmlvbWFya2VycyoqCgpodHRwczovL3d3dy5nYXN0cm9qb3VybmFsLm9yZy9hcnRpY2xlL1MwMDE2LTUwODUoMTkpMzI1MDUtMy9mdWxsdGV4dAoKCi0tLQoKLSAqKkV4b3NvbWVzIGZyb20gUGFuY3JlYXRpYyBKdWljZTogQSBTdGVwIENsb3NlciB0byB0aGUgSG9seSBHcmFpbD8qKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEyNDUvczEwNDM0LTAxOS0wNzI3MS01CgoKLS0tCgotICoqU2lnbmlmaWNhbmNlIG9mIENhbmNlciBDZWxscyBhdCB0aGUgVmVpbiBFZGdlIGluIFBhdGllbnRzIHdpdGggUGFuY3JlYXRpYyBBZGVub2NhcmNpbm9tYSBGb2xsb3dpbmcgUGFuY3JlYXRlY3RvbXkgd2l0aCBWZWluIFJlc2VjdGlvbioqCgpodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2FydGljbGUvMTAuMTAwNy9zMTE2MDUtMDE5LTA0MTI2LXkKCi0tLQoKLSAqKkV4b3NvbWVzIGZyb20gUGFuY3JlYXRpYyBKdWljZTogQSBTdGVwIENsb3NlciB0byB0aGUgSG9seSBHcmFpbD8qKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEyNDUvczEwNDM0LTAxOS0wNzI3MS01CgotLS0KCi0gKipJbnRlZ3JhdGl2ZSBBbmFseXNpcyBvZiBOb3ZlbE1ldGFib2xpYyBTdWJ0eXBlcyBpbiBQYW5jcmVhdGljQ2FuY2VyIEZvc3RlcnMgTmV3IFByb2dub3N0aWNCaW9tYXJrZXJzKioKCmh0dHBzOi8vaXJpcy51bml0by5pdC9yZXRyaWV2ZS9oYW5kbGUvMjMxOC8xNjk0MDc5LzQ4NDY5My9mb25jLTA5LTAwMTE1LnBkZgoKCi0tLQoKLSAqKklzIGVhcmx5LXN0YWdlIHBhbmNyZWF0aWMgYWRlbm9jYXJjaW5vbWEgdHJ1bHkgZWFybHk6IHN0YWdlIG1pZ3JhdGlvbiBvbiBmaW5hbCBwYXRob2xvZ3kgd2l0aCBzdXJnZXJ5LWZpcnN0IHZlcnN1cyBuZW9hZGp1dmFudCB0aGVyYXB5IHNlcXVlbmNpbmcqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL2Ficy9waWkvUzEzNjUxODJYMTkzMDA2NjgKCi0tLQoKLSAqKkEgcmVzZWN0ZWQgY2FzZSBvZiByZWN1cnJlbnQgSVRQTiBpbiB0aGUgcmVtbmFudCBwYW5jcmVhcyBhZnRlciBwYW5jcmVhdG9kdW9kZW5lY3RvbXkqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjExODYvczQwNzkyLTAxOS0wNTkwLTAKCgoKCgotLS0KCi0gKipJbnRyYWR1Y3RhbCBPbmNvY3l0aWMgUGFwaWxsYXJ5IE5lb3BsYXNtcyBDbGluaWNhbC1QYXRob2xvZ2ljIENoYXJhY3Rlcml6YXRpb24gb2YgMjQgQ2FzZXMsIFdpdGggQW4gRW1waGFzaXMgb24gQXNzb2NpYXRlZCBJbnZhc2l2ZSBDYXJjaW5vbWFzKioKCmh0dHBzOi8vam91cm5hbHMubHd3LmNvbS9hanNwL0Fic3RyYWN0L3B1Ymxpc2hhaGVhZC9JbnRyYWR1Y3RhbF9PbmNvY3l0aWNfUGFwaWxsYXJ5X05lb3BsYXNtc18uOTc3MDMuYXNweAoKCi0tLQoKLSAqKlN5c3RlbWF0aWMgcmV2aWV3IG9mIGNsaW5pY2FsIHByZWRpY3Rpb24gbW9kZWxzIGZvciBzdXJ2aXZhbCBhZnRlciBzdXJnZXJ5IGZvciByZXNlY3RhYmxlIHBhbmNyZWF0aWMgY2FuY2VyKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMDAyL2Jqcy4xMTExMQoKCi0tLQoKaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wbWMvYXJ0aWNsZXMvUE1DNjM3OTI5Ni8KCmh0dHBzOi8vd2pzby5iaW9tZWRjZW50cmFsLmNvbS9hcnRpY2xlcy8xMC4xMTg2L3MxMjk1Ny0wMTktMTU3NC16CgoKaHR0cDovL2NhbmNlcmRpc2NvdmVyeS5hYWNyam91cm5hbHMub3JnL2NvbnRlbnQvOS8yLzE3My5hYnN0cmFjdAoKaHR0cHM6Ly93d3cua2FyZ2VyLmNvbS9BcnRpY2xlL0Fic3RyYWN0LzQ5NzI5MQoKaHR0cHM6Ly9hY2FkZW1pYy5vdXAuY29tL2NhcmNpbi9hZHZhbmNlLWFydGljbGUtYWJzdHJhY3QvZG9pLzEwLjEwOTMvY2FyY2luL2JnejAyNC81MzA4ODY4CgoKCjMwMzQ4MDU3CgotLS0KCmBgYHtyIHp6eiAzMDM0ODA1NywgaW5jbHVkZT1GQUxTRX0KClBNSURfMzAzNDgwNTcgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzAzNDgwNTcnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzAzNDgwNTcgPC0gcGFzdGUwKFBNSURfMzAzNDgwNTckam91cm5hbCwnICcsIFBNSURfMzAzNDgwNTckeWVhciwgJyAnLCBQTUlEXzMwMzQ4MDU3JG1vbnRoLCc7JywgUE1JRF8zMDM0ODA1NyR2b2x1bWUsJygnLCBQTUlEXzMwMzQ4MDU3JG51bWJlciwnKTonLCBQTUlEXzMwMzQ4MDU3JHBhZ2VzKQoKUHViTWVkXzMwMzQ4MDU3IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzAzNDgwNTckZXByaW50KQoKZG9pXzMwMzQ4MDU3IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzAzNDgwNTckZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzAzNDgwNTcgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzAzNDgwNTckZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDM0ODA1NyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDM0ODA1NyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzAzNDgwNTcgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDM0ODA1NyR0aXRsZSAsICIgUE1JRDogMzAzNDgwNTcgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwMzQ4MDU3JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzAzNDgwNTdgKgoKYHIgUHViTWVkXzMwMzQ4MDU3YAoKYHIgYWRkdGhpc19pbmxpbmVfMzAzNDgwNTdgCgpgciBQTUlEXzMwMzQ4MDU3JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzAzNDgwNTdgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzAzNDgwNTdgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDM0ODA1N2AKCjwvZGV0YWlscz4KCgozMDc0MjkxMQoKLS0tCgpgYGB7ciB6enogMzA3NDI5MTEsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzQyOTExIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzQyOTExJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzQyOTExIDwtIHBhc3RlMChQTUlEXzMwNzQyOTExJGpvdXJuYWwsJyAnLCBQTUlEXzMwNzQyOTExJHllYXIsICcgJywgUE1JRF8zMDc0MjkxMSRtb250aCwnOycsIFBNSURfMzA3NDI5MTEkdm9sdW1lLCcoJywgUE1JRF8zMDc0MjkxMSRudW1iZXIsJyk6JywgUE1JRF8zMDc0MjkxMSRwYWdlcykKClB1Yk1lZF8zMDc0MjkxMSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzQyOTExJGVwcmludCkKCmRvaV8zMDc0MjkxMSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzQyOTExJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzQyOTExIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzQyOTExJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3NDI5MTEgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3NDI5MTEkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzQyOTExIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3NDI5MTEkdGl0bGUgLCAiIFBNSUQ6IDMwNzQyOTExICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDc0MjkxMSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzQyOTExYCoKCmByIFB1Yk1lZF8zMDc0MjkxMWAKCmByIGFkZHRoaXNfaW5saW5lXzMwNzQyOTExYAoKYHIgUE1JRF8zMDc0MjkxMSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzQyOTExYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzQyOTExYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3NDI5MTFgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIHp6eiAzMDM5MTAxMywgaW5jbHVkZT1GQUxTRX0KClBNSURfMzAzOTEwMTMgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzAzOTEwMTMnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzAzOTEwMTMgPC0gcGFzdGUwKFBNSURfMzAzOTEwMTMkam91cm5hbCwnICcsIFBNSURfMzAzOTEwMTMkeWVhciwgJyAnLCBQTUlEXzMwMzkxMDEzJG1vbnRoLCc7JywgUE1JRF8zMDM5MTAxMyR2b2x1bWUsJygnLCBQTUlEXzMwMzkxMDEzJG51bWJlciwnKTonLCBQTUlEXzMwMzkxMDEzJHBhZ2VzKQoKUHViTWVkXzMwMzkxMDEzIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzAzOTEwMTMkZXByaW50KQoKZG9pXzMwMzkxMDEzIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzAzOTEwMTMkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzAzOTEwMTMgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzAzOTEwMTMkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDM5MTAxMyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDM5MTAxMyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzAzOTEwMTMgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDM5MTAxMyR0aXRsZSAsICIgUE1JRDogMzAzOTEwMTMgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwMzkxMDEzJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzAzOTEwMTNgKgoKYHIgUHViTWVkXzMwMzkxMDEzYAoKYHIgYWRkdGhpc19pbmxpbmVfMzAzOTEwMTNgCgpgciBQTUlEXzMwMzkxMDEzJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzAzOTEwMTNgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzAzOTEwMTNgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDM5MTAxM2AKCjwvZGV0YWlscz4KCi0tLQoKCgoKMzA3NDc4MjgKCi0tLQoKYGBge3Igenp6IDMwNzQ3ODI4LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDc0NzgyOCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDc0NzgyOCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDc0NzgyOCA8LSBwYXN0ZTAoUE1JRF8zMDc0NzgyOCRqb3VybmFsLCcgJywgUE1JRF8zMDc0NzgyOCR5ZWFyLCAnICcsIFBNSURfMzA3NDc4MjgkbW9udGgsJzsnLCBQTUlEXzMwNzQ3ODI4JHZvbHVtZSwnKCcsIFBNSURfMzA3NDc4MjgkbnVtYmVyLCcpOicsIFBNSURfMzA3NDc4MjgkcGFnZXMpCgpQdWJNZWRfMzA3NDc4MjggPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDc0NzgyOCRlcHJpbnQpCgpkb2lfMzA3NDc4MjggPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDc0NzgyOCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDc0NzgyOCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDc0NzgyOCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNzQ3ODI4IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNzQ3ODI4JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDc0NzgyOCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNzQ3ODI4JHRpdGxlICwgIiBQTUlEOiAzMDc0NzgyOCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA3NDc4MjgkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDc0NzgyOGAqCgpgciBQdWJNZWRfMzA3NDc4MjhgCgpgciBhZGR0aGlzX2lubGluZV8zMDc0NzgyOGAKCmByIFBNSURfMzA3NDc4MjgkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDc0NzgyOGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDc0NzgyOGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNzQ3ODI4YAoKPC9kZXRhaWxzPgoKLS0tCgoKCjMwNzY4OTg2CgotLS0KCmBgYHtyIHp6eiAzMDc2ODk4NiwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA3Njg5ODYgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA3Njg5ODYnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA3Njg5ODYgPC0gcGFzdGUwKFBNSURfMzA3Njg5ODYkam91cm5hbCwnICcsIFBNSURfMzA3Njg5ODYkeWVhciwgJyAnLCBQTUlEXzMwNzY4OTg2JG1vbnRoLCc7JywgUE1JRF8zMDc2ODk4NiR2b2x1bWUsJygnLCBQTUlEXzMwNzY4OTg2JG51bWJlciwnKTonLCBQTUlEXzMwNzY4OTg2JHBhZ2VzKQoKUHViTWVkXzMwNzY4OTg2IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA3Njg5ODYkZXByaW50KQoKZG9pXzMwNzY4OTg2IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA3Njg5ODYkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA3Njg5ODYgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA3Njg5ODYkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDc2ODk4NiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDc2ODk4NiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA3Njg5ODYgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDc2ODk4NiR0aXRsZSAsICIgUE1JRDogMzA3Njg5ODYgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNzY4OTg2JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA3Njg5ODZgKgoKYHIgUHViTWVkXzMwNzY4OTg2YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA3Njg5ODZgCgpgciBQTUlEXzMwNzY4OTg2JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA3Njg5ODZgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA3Njg5ODZgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDc2ODk4NmAKCjwvZGV0YWlscz4KCi0tLQoKCjMwNDI4NTg4CgotLS0KCmBgYHtyIHp6eiAzMDQyODU4OCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA0Mjg1ODggPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA0Mjg1ODgnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA0Mjg1ODggPC0gcGFzdGUwKFBNSURfMzA0Mjg1ODgkam91cm5hbCwnICcsIFBNSURfMzA0Mjg1ODgkeWVhciwgJyAnLCBQTUlEXzMwNDI4NTg4JG1vbnRoLCc7JywgUE1JRF8zMDQyODU4OCR2b2x1bWUsJygnLCBQTUlEXzMwNDI4NTg4JG51bWJlciwnKTonLCBQTUlEXzMwNDI4NTg4JHBhZ2VzKQoKUHViTWVkXzMwNDI4NTg4IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA0Mjg1ODgkZXByaW50KQoKZG9pXzMwNDI4NTg4IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA0Mjg1ODgkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA0Mjg1ODggPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA0Mjg1ODgkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDQyODU4OCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDQyODU4OCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA0Mjg1ODggPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDQyODU4OCR0aXRsZSAsICIgUE1JRDogMzA0Mjg1ODggIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNDI4NTg4JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA0Mjg1ODhgKgoKYHIgUHViTWVkXzMwNDI4NTg4YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA0Mjg1ODhgCgpgciBQTUlEXzMwNDI4NTg4JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA0Mjg1ODhgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA0Mjg1ODhgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDQyODU4OGAKCjwvZGV0YWlscz4KCi0tLQoKCjMwNzQ3ODI5CgotLS0KCmBgYHtyIHp6eiAzMDc0NzgyOSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA3NDc4MjkgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA3NDc4MjknLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA3NDc4MjkgPC0gcGFzdGUwKFBNSURfMzA3NDc4Mjkkam91cm5hbCwnICcsIFBNSURfMzA3NDc4MjkkeWVhciwgJyAnLCBQTUlEXzMwNzQ3ODI5JG1vbnRoLCc7JywgUE1JRF8zMDc0NzgyOSR2b2x1bWUsJygnLCBQTUlEXzMwNzQ3ODI5JG51bWJlciwnKTonLCBQTUlEXzMwNzQ3ODI5JHBhZ2VzKQoKUHViTWVkXzMwNzQ3ODI5IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA3NDc4MjkkZXByaW50KQoKZG9pXzMwNzQ3ODI5IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA3NDc4MjkkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA3NDc4MjkgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA3NDc4MjkkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDc0NzgyOSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDc0NzgyOSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA3NDc4MjkgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDc0NzgyOSR0aXRsZSAsICIgUE1JRDogMzA3NDc4MjkgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNzQ3ODI5JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA3NDc4MjlgKgoKYHIgUHViTWVkXzMwNzQ3ODI5YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA3NDc4MjlgCgpgciBQTUlEXzMwNzQ3ODI5JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA3NDc4MjlgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA3NDc4MjlgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDc0NzgyOWAKCjwvZGV0YWlscz4KCgotLS0KCmBgYHtyIHp6eiAzMDc2ODU3NywgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA3Njg1NzcgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA3Njg1NzcnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA3Njg1NzcgPC0gcGFzdGUwKFBNSURfMzA3Njg1Nzckam91cm5hbCwnICcsIFBNSURfMzA3Njg1NzckeWVhciwgJyAnLCBQTUlEXzMwNzY4NTc3JG1vbnRoLCc7JywgUE1JRF8zMDc2ODU3NyR2b2x1bWUsJygnLCBQTUlEXzMwNzY4NTc3JG51bWJlciwnKTonLCBQTUlEXzMwNzY4NTc3JHBhZ2VzKQoKUHViTWVkXzMwNzY4NTc3IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA3Njg1NzckZXByaW50KQoKZG9pXzMwNzY4NTc3IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA3Njg1NzckZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA3Njg1NzcgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA3Njg1NzckZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDc2ODU3NyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDc2ODU3NyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA3Njg1NzcgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDc2ODU3NyR0aXRsZSAsICIgUE1JRDogMzA3Njg1NzcgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNzY4NTc3JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA3Njg1NzdgKgoKYHIgUHViTWVkXzMwNzY4NTc3YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA3Njg1NzdgCgpgciBQTUlEXzMwNzY4NTc3JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA3Njg1NzdgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA3Njg1NzdgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDc2ODU3N2AKCjwvZGV0YWlscz4KCi0tLQoKCjMwNzM3MDMyCgotLS0KCmBgYHtyIHp6eiAzMDczNzAzMiwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA3MzcwMzIgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA3MzcwMzInLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA3MzcwMzIgPC0gcGFzdGUwKFBNSURfMzA3MzcwMzIkam91cm5hbCwnICcsIFBNSURfMzA3MzcwMzIkeWVhciwgJyAnLCBQTUlEXzMwNzM3MDMyJG1vbnRoLCc7JywgUE1JRF8zMDczNzAzMiR2b2x1bWUsJygnLCBQTUlEXzMwNzM3MDMyJG51bWJlciwnKTonLCBQTUlEXzMwNzM3MDMyJHBhZ2VzKQoKUHViTWVkXzMwNzM3MDMyIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA3MzcwMzIkZXByaW50KQoKZG9pXzMwNzM3MDMyIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA3MzcwMzIkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA3MzcwMzIgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA3MzcwMzIkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDczNzAzMiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDczNzAzMiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA3MzcwMzIgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDczNzAzMiR0aXRsZSAsICIgUE1JRDogMzA3MzcwMzIgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNzM3MDMyJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA3MzcwMzJgKgoKYHIgUHViTWVkXzMwNzM3MDMyYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA3MzcwMzJgCgpgciBQTUlEXzMwNzM3MDMyJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA3MzcwMzJgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA3MzcwMzJgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDczNzAzMmAKCjwvZGV0YWlscz4KCi0tLQoKCgozMDc0NzIyNgoKLS0tCgpgYGB7ciB6enogMzA3NDcyMjYsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzQ3MjI2IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzQ3MjI2JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzQ3MjI2IDwtIHBhc3RlMChQTUlEXzMwNzQ3MjI2JGpvdXJuYWwsJyAnLCBQTUlEXzMwNzQ3MjI2JHllYXIsICcgJywgUE1JRF8zMDc0NzIyNiRtb250aCwnOycsIFBNSURfMzA3NDcyMjYkdm9sdW1lLCcoJywgUE1JRF8zMDc0NzIyNiRudW1iZXIsJyk6JywgUE1JRF8zMDc0NzIyNiRwYWdlcykKClB1Yk1lZF8zMDc0NzIyNiA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzQ3MjI2JGVwcmludCkKCmRvaV8zMDc0NzIyNiA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzQ3MjI2JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzQ3MjI2IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzQ3MjI2JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3NDcyMjYgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3NDcyMjYkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzQ3MjI2IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3NDcyMjYkdGl0bGUgLCAiIFBNSUQ6IDMwNzQ3MjI2ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDc0NzIyNiR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzQ3MjI2YCoKCmByIFB1Yk1lZF8zMDc0NzIyNmAKCmByIGFkZHRoaXNfaW5saW5lXzMwNzQ3MjI2YAoKYHIgUE1JRF8zMDc0NzIyNiRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzQ3MjI2YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzQ3MjI2YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3NDcyMjZgCgo8L2RldGFpbHM+CgoKLS0tCgpgYGB7ciB6enogMzA0MDUwNTMsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNDA1MDUzIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNDA1MDUzJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNDA1MDUzIDwtIHBhc3RlMChQTUlEXzMwNDA1MDUzJGpvdXJuYWwsJyAnLCBQTUlEXzMwNDA1MDUzJHllYXIsICcgJywgUE1JRF8zMDQwNTA1MyRtb250aCwnOycsIFBNSURfMzA0MDUwNTMkdm9sdW1lLCcoJywgUE1JRF8zMDQwNTA1MyRudW1iZXIsJyk6JywgUE1JRF8zMDQwNTA1MyRwYWdlcykKClB1Yk1lZF8zMDQwNTA1MyA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNDA1MDUzJGVwcmludCkKCmRvaV8zMDQwNTA1MyA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNDA1MDUzJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNDA1MDUzIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNDA1MDUzJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA0MDUwNTMgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA0MDUwNTMkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNDA1MDUzIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA0MDUwNTMkdGl0bGUgLCAiIFBNSUQ6IDMwNDA1MDUzICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDQwNTA1MyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNDA1MDUzYCoKCmByIFB1Yk1lZF8zMDQwNTA1M2AKCmByIGFkZHRoaXNfaW5saW5lXzMwNDA1MDUzYAoKYHIgUE1JRF8zMDQwNTA1MyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNDA1MDUzYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNDA1MDUzYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA0MDUwNTNgCgo8L2RldGFpbHM+CgotLS0KCgozMDc1NTMwNQoKLS0tCgpgYGB7ciB6enogMzA3NTUzMDUsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzU1MzA1IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzU1MzA1JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzU1MzA1IDwtIHBhc3RlMChQTUlEXzMwNzU1MzA1JGpvdXJuYWwsJyAnLCBQTUlEXzMwNzU1MzA1JHllYXIsICcgJywgUE1JRF8zMDc1NTMwNSRtb250aCwnOycsIFBNSURfMzA3NTUzMDUkdm9sdW1lLCcoJywgUE1JRF8zMDc1NTMwNSRudW1iZXIsJyk6JywgUE1JRF8zMDc1NTMwNSRwYWdlcykKClB1Yk1lZF8zMDc1NTMwNSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzU1MzA1JGVwcmludCkKCmRvaV8zMDc1NTMwNSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzU1MzA1JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzU1MzA1IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzU1MzA1JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3NTUzMDUgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3NTUzMDUkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzU1MzA1IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3NTUzMDUkdGl0bGUgLCAiIFBNSUQ6IDMwNzU1MzA1ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDc1NTMwNSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzU1MzA1YCoKCmByIFB1Yk1lZF8zMDc1NTMwNWAKCmByIGFkZHRoaXNfaW5saW5lXzMwNzU1MzA1YAoKYHIgUE1JRF8zMDc1NTMwNSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzU1MzA1YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzU1MzA1YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3NTUzMDVgCgo8L2RldGFpbHM+CgotLS0KCgozMDc2ODU3MwoKLS0tCgpgYGB7ciB6enogMzA3Njg1NzMsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzY4NTczIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzY4NTczJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzY4NTczIDwtIHBhc3RlMChQTUlEXzMwNzY4NTczJGpvdXJuYWwsJyAnLCBQTUlEXzMwNzY4NTczJHllYXIsICcgJywgUE1JRF8zMDc2ODU3MyRtb250aCwnOycsIFBNSURfMzA3Njg1NzMkdm9sdW1lLCcoJywgUE1JRF8zMDc2ODU3MyRudW1iZXIsJyk6JywgUE1JRF8zMDc2ODU3MyRwYWdlcykKClB1Yk1lZF8zMDc2ODU3MyA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzY4NTczJGVwcmludCkKCmRvaV8zMDc2ODU3MyA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzY4NTczJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzY4NTczIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzY4NTczJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3Njg1NzMgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3Njg1NzMkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzY4NTczIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3Njg1NzMkdGl0bGUgLCAiIFBNSUQ6IDMwNzY4NTczICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDc2ODU3MyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzY4NTczYCoKCmByIFB1Yk1lZF8zMDc2ODU3M2AKCmByIGFkZHRoaXNfaW5saW5lXzMwNzY4NTczYAoKYHIgUE1JRF8zMDc2ODU3MyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzY4NTczYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzY4NTczYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3Njg1NzNgCgo8L2RldGFpbHM+CgotLS0KCgozMDc0NzgyMwoKLS0tCgpgYGB7ciB6enogMzA3NDc4MjMsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzQ3ODIzIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzQ3ODIzJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzQ3ODIzIDwtIHBhc3RlMChQTUlEXzMwNzQ3ODIzJGpvdXJuYWwsJyAnLCBQTUlEXzMwNzQ3ODIzJHllYXIsICcgJywgUE1JRF8zMDc0NzgyMyRtb250aCwnOycsIFBNSURfMzA3NDc4MjMkdm9sdW1lLCcoJywgUE1JRF8zMDc0NzgyMyRudW1iZXIsJyk6JywgUE1JRF8zMDc0NzgyMyRwYWdlcykKClB1Yk1lZF8zMDc0NzgyMyA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzQ3ODIzJGVwcmludCkKCmRvaV8zMDc0NzgyMyA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzQ3ODIzJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzQ3ODIzIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzQ3ODIzJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3NDc4MjMgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3NDc4MjMkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzQ3ODIzIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3NDc4MjMkdGl0bGUgLCAiIFBNSUQ6IDMwNzQ3ODIzICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDc0NzgyMyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzQ3ODIzYCoKCmByIFB1Yk1lZF8zMDc0NzgyM2AKCmByIGFkZHRoaXNfaW5saW5lXzMwNzQ3ODIzYAoKYHIgUE1JRF8zMDc0NzgyMyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzQ3ODIzYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzQ3ODIzYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3NDc4MjNgCgo8L2RldGFpbHM+CgotLS0KCgoKCjMwNzU2MzE0CgotLS0KCmBgYHtyIHp6eiAzMDc1NjMxNCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA3NTYzMTQgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA3NTYzMTQnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA3NTYzMTQgPC0gcGFzdGUwKFBNSURfMzA3NTYzMTQkam91cm5hbCwnICcsIFBNSURfMzA3NTYzMTQkeWVhciwgJyAnLCBQTUlEXzMwNzU2MzE0JG1vbnRoLCc7JywgUE1JRF8zMDc1NjMxNCR2b2x1bWUsJygnLCBQTUlEXzMwNzU2MzE0JG51bWJlciwnKTonLCBQTUlEXzMwNzU2MzE0JHBhZ2VzKQoKUHViTWVkXzMwNzU2MzE0IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA3NTYzMTQkZXByaW50KQoKZG9pXzMwNzU2MzE0IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA3NTYzMTQkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA3NTYzMTQgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA3NTYzMTQkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDc1NjMxNCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDc1NjMxNCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA3NTYzMTQgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDc1NjMxNCR0aXRsZSAsICIgUE1JRDogMzA3NTYzMTQgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNzU2MzE0JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA3NTYzMTRgKgoKYHIgUHViTWVkXzMwNzU2MzE0YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA3NTYzMTRgCgpgciBQTUlEXzMwNzU2MzE0JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA3NTYzMTRgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA3NTYzMTRgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDc1NjMxNGAKCjwvZGV0YWlscz4KCi0tLQoKCgozMDc0NzgyNwoKLS0tCgpgYGB7ciB6enogMzA3NDc4MjcsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzQ3ODI3IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzQ3ODI3JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzQ3ODI3IDwtIHBhc3RlMChQTUlEXzMwNzQ3ODI3JGpvdXJuYWwsJyAnLCBQTUlEXzMwNzQ3ODI3JHllYXIsICcgJywgUE1JRF8zMDc0NzgyNyRtb250aCwnOycsIFBNSURfMzA3NDc4Mjckdm9sdW1lLCcoJywgUE1JRF8zMDc0NzgyNyRudW1iZXIsJyk6JywgUE1JRF8zMDc0NzgyNyRwYWdlcykKClB1Yk1lZF8zMDc0NzgyNyA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzQ3ODI3JGVwcmludCkKCmRvaV8zMDc0NzgyNyA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzQ3ODI3JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzQ3ODI3IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzQ3ODI3JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3NDc4MjcgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3NDc4MjckZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzQ3ODI3IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3NDc4MjckdGl0bGUgLCAiIFBNSUQ6IDMwNzQ3ODI3ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDc0NzgyNyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzQ3ODI3YCoKCmByIFB1Yk1lZF8zMDc0NzgyN2AKCmByIGFkZHRoaXNfaW5saW5lXzMwNzQ3ODI3YAoKYHIgUE1JRF8zMDc0NzgyNyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzQ3ODI3YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzQ3ODI3YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3NDc4MjdgCgo8L2RldGFpbHM+CgotLS0KCgoKMzA3Njg1NzQKCi0tLQoKYGBge3Igenp6IDMwNzY4NTc0LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDc2ODU3NCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDc2ODU3NCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDc2ODU3NCA8LSBwYXN0ZTAoUE1JRF8zMDc2ODU3NCRqb3VybmFsLCcgJywgUE1JRF8zMDc2ODU3NCR5ZWFyLCAnICcsIFBNSURfMzA3Njg1NzQkbW9udGgsJzsnLCBQTUlEXzMwNzY4NTc0JHZvbHVtZSwnKCcsIFBNSURfMzA3Njg1NzQkbnVtYmVyLCcpOicsIFBNSURfMzA3Njg1NzQkcGFnZXMpCgpQdWJNZWRfMzA3Njg1NzQgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDc2ODU3NCRlcHJpbnQpCgpkb2lfMzA3Njg1NzQgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDc2ODU3NCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDc2ODU3NCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDc2ODU3NCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNzY4NTc0IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNzY4NTc0JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDc2ODU3NCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNzY4NTc0JHRpdGxlICwgIiBQTUlEOiAzMDc2ODU3NCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA3Njg1NzQkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDc2ODU3NGAqCgpgciBQdWJNZWRfMzA3Njg1NzRgCgpgciBhZGR0aGlzX2lubGluZV8zMDc2ODU3NGAKCmByIFBNSURfMzA3Njg1NzQkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDc2ODU3NGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDc2ODU3NGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNzY4NTc0YAoKPC9kZXRhaWxzPgoKLS0tCgoKCjI5ODYwOTg2CgotLS0KCmBgYHtyIHp6eiAyOTg2MDk4NiwgaW5jbHVkZT1GQUxTRX0KClBNSURfMjk4NjA5ODYgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMjk4NjA5ODYnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMjk4NjA5ODYgPC0gcGFzdGUwKFBNSURfMjk4NjA5ODYkam91cm5hbCwnICcsIFBNSURfMjk4NjA5ODYkeWVhciwgJyAnLCBQTUlEXzI5ODYwOTg2JG1vbnRoLCc7JywgUE1JRF8yOTg2MDk4NiR2b2x1bWUsJygnLCBQTUlEXzI5ODYwOTg2JG51bWJlciwnKTonLCBQTUlEXzI5ODYwOTg2JHBhZ2VzKQoKUHViTWVkXzI5ODYwOTg2IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMjk4NjA5ODYkZXByaW50KQoKZG9pXzI5ODYwOTg2IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMjk4NjA5ODYkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMjk4NjA5ODYgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMjk4NjA5ODYkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8yOTg2MDk4NiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8yOTg2MDk4NiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMjk4NjA5ODYgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8yOTg2MDk4NiR0aXRsZSAsICIgUE1JRDogMjk4NjA5ODYgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzI5ODYwOTg2JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMjk4NjA5ODZgKgoKYHIgUHViTWVkXzI5ODYwOTg2YAoKYHIgYWRkdGhpc19pbmxpbmVfMjk4NjA5ODZgCgpgciBQTUlEXzI5ODYwOTg2JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMjk4NjA5ODZgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMjk4NjA5ODZgCgpgciBhbHRtZXRyaWNCYWRnZV8yOTg2MDk4NmAKCjwvZGV0YWlscz4KCi0tLQoKCjMwMjQzODc5CgotLS0KCmBgYHtyIHp6eiAzMDI0Mzg3OSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzAyNDM4NzkgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzAyNDM4NzknLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzAyNDM4NzkgPC0gcGFzdGUwKFBNSURfMzAyNDM4Nzkkam91cm5hbCwnICcsIFBNSURfMzAyNDM4NzkkeWVhciwgJyAnLCBQTUlEXzMwMjQzODc5JG1vbnRoLCc7JywgUE1JRF8zMDI0Mzg3OSR2b2x1bWUsJygnLCBQTUlEXzMwMjQzODc5JG51bWJlciwnKTonLCBQTUlEXzMwMjQzODc5JHBhZ2VzKQoKUHViTWVkXzMwMjQzODc5IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzAyNDM4NzkkZXByaW50KQoKZG9pXzMwMjQzODc5IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzAyNDM4NzkkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzAyNDM4NzkgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzAyNDM4NzkkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDI0Mzg3OSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDI0Mzg3OSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzAyNDM4NzkgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDI0Mzg3OSR0aXRsZSAsICIgUE1JRDogMzAyNDM4NzkgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwMjQzODc5JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzAyNDM4NzlgKgoKYHIgUHViTWVkXzMwMjQzODc5YAoKYHIgYWRkdGhpc19pbmxpbmVfMzAyNDM4NzlgCgpgciBQTUlEXzMwMjQzODc5JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzAyNDM4NzlgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzAyNDM4NzlgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDI0Mzg3OWAKCjwvZGV0YWlscz4KCi0tLQoKCjMwNzY3MTQ4CgotLS0KCmBgYHtyIHp6eiAzMDc2NzE0OCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA3NjcxNDggPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA3NjcxNDgnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA3NjcxNDggPC0gcGFzdGUwKFBNSURfMzA3NjcxNDgkam91cm5hbCwnICcsIFBNSURfMzA3NjcxNDgkeWVhciwgJyAnLCBQTUlEXzMwNzY3MTQ4JG1vbnRoLCc7JywgUE1JRF8zMDc2NzE0OCR2b2x1bWUsJygnLCBQTUlEXzMwNzY3MTQ4JG51bWJlciwnKTonLCBQTUlEXzMwNzY3MTQ4JHBhZ2VzKQoKUHViTWVkXzMwNzY3MTQ4IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA3NjcxNDgkZXByaW50KQoKZG9pXzMwNzY3MTQ4IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA3NjcxNDgkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA3NjcxNDggPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA3NjcxNDgkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDc2NzE0OCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDc2NzE0OCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA3NjcxNDggPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDc2NzE0OCR0aXRsZSAsICIgUE1JRDogMzA3NjcxNDggIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNzY3MTQ4JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA3NjcxNDhgKgoKYHIgUHViTWVkXzMwNzY3MTQ4YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA3NjcxNDhgCgpgciBQTUlEXzMwNzY3MTQ4JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA3NjcxNDhgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA3NjcxNDhgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDc2NzE0OGAKCjwvZGV0YWlscz4KCi0tLQoKCgoyOTQ4MzgyOQoKLS0tCgpgYGB7ciB6enogMjk0ODM4MjksIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzI5NDgzODI5IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzI5NDgzODI5JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzI5NDgzODI5IDwtIHBhc3RlMChQTUlEXzI5NDgzODI5JGpvdXJuYWwsJyAnLCBQTUlEXzI5NDgzODI5JHllYXIsICcgJywgUE1JRF8yOTQ4MzgyOSRtb250aCwnOycsIFBNSURfMjk0ODM4Mjkkdm9sdW1lLCcoJywgUE1JRF8yOTQ4MzgyOSRudW1iZXIsJyk6JywgUE1JRF8yOTQ4MzgyOSRwYWdlcykKClB1Yk1lZF8yOTQ4MzgyOSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzI5NDgzODI5JGVwcmludCkKCmRvaV8yOTQ4MzgyOSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzI5NDgzODI5JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzI5NDgzODI5IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzI5NDgzODI5JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMjk0ODM4MjkgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMjk0ODM4MjkkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzI5NDgzODI5IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMjk0ODM4MjkkdGl0bGUgLCAiIFBNSUQ6IDI5NDgzODI5ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8yOTQ4MzgyOSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzI5NDgzODI5YCoKCmByIFB1Yk1lZF8yOTQ4MzgyOWAKCmByIGFkZHRoaXNfaW5saW5lXzI5NDgzODI5YAoKYHIgUE1JRF8yOTQ4MzgyOSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzI5NDgzODI5YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzI5NDgzODI5YAoKYHIgYWx0bWV0cmljQmFkZ2VfMjk0ODM4MjlgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIHp6eiAzMDc2ODc4NSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA3Njg3ODUgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA3Njg3ODUnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA3Njg3ODUgPC0gcGFzdGUwKFBNSURfMzA3Njg3ODUkam91cm5hbCwnICcsIFBNSURfMzA3Njg3ODUkeWVhciwgJyAnLCBQTUlEXzMwNzY4Nzg1JG1vbnRoLCc7JywgUE1JRF8zMDc2ODc4NSR2b2x1bWUsJygnLCBQTUlEXzMwNzY4Nzg1JG51bWJlciwnKTonLCBQTUlEXzMwNzY4Nzg1JHBhZ2VzKQoKUHViTWVkXzMwNzY4Nzg1IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA3Njg3ODUkZXByaW50KQoKZG9pXzMwNzY4Nzg1IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA3Njg3ODUkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA3Njg3ODUgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA3Njg3ODUkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDc2ODc4NSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDc2ODc4NSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA3Njg3ODUgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDc2ODc4NSR0aXRsZSAsICIgUE1JRDogMzA3Njg3ODUgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwNzY4Nzg1JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA3Njg3ODVgKgoKYHIgUHViTWVkXzMwNzY4Nzg1YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA3Njg3ODVgCgpgciBQTUlEXzMwNzY4Nzg1JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA3Njg3ODVgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA3Njg3ODVgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDc2ODc4NWAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwNzQ3ODI0LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDc0NzgyNCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDc0NzgyNCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDc0NzgyNCA8LSBwYXN0ZTAoUE1JRF8zMDc0NzgyNCRqb3VybmFsLCcgJywgUE1JRF8zMDc0NzgyNCR5ZWFyLCAnICcsIFBNSURfMzA3NDc4MjQkbW9udGgsJzsnLCBQTUlEXzMwNzQ3ODI0JHZvbHVtZSwnKCcsIFBNSURfMzA3NDc4MjQkbnVtYmVyLCcpOicsIFBNSURfMzA3NDc4MjQkcGFnZXMpCgpQdWJNZWRfMzA3NDc4MjQgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDc0NzgyNCRlcHJpbnQpCgpkb2lfMzA3NDc4MjQgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDc0NzgyNCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDc0NzgyNCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDc0NzgyNCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNzQ3ODI0IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNzQ3ODI0JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDc0NzgyNCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNzQ3ODI0JHRpdGxlICwgIiBQTUlEOiAzMDc0NzgyNCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA3NDc4MjQkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDc0NzgyNGAqCgpgciBQdWJNZWRfMzA3NDc4MjRgCgpgciBhZGR0aGlzX2lubGluZV8zMDc0NzgyNGAKCmByIFBNSURfMzA3NDc4MjQkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDc0NzgyNGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDc0NzgyNGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNzQ3ODI0YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciB6enogMzA3NjU2MTEsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzY1NjExIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzY1NjExJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzY1NjExIDwtIHBhc3RlMChQTUlEXzMwNzY1NjExJGpvdXJuYWwsJyAnLCBQTUlEXzMwNzY1NjExJHllYXIsICcgJywgUE1JRF8zMDc2NTYxMSRtb250aCwnOycsIFBNSURfMzA3NjU2MTEkdm9sdW1lLCcoJywgUE1JRF8zMDc2NTYxMSRudW1iZXIsJyk6JywgUE1JRF8zMDc2NTYxMSRwYWdlcykKClB1Yk1lZF8zMDc2NTYxMSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzY1NjExJGVwcmludCkKCmRvaV8zMDc2NTYxMSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzY1NjExJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzY1NjExIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzY1NjExJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3NjU2MTEgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3NjU2MTEkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzY1NjExIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3NjU2MTEkdGl0bGUgLCAiIFBNSUQ6IDMwNzY1NjExICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDc2NTYxMSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzY1NjExYCoKCmByIFB1Yk1lZF8zMDc2NTYxMWAKCmByIGFkZHRoaXNfaW5saW5lXzMwNzY1NjExYAoKYHIgUE1JRF8zMDc2NTYxMSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzY1NjExYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzY1NjExYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3NjU2MTFgCgo8L2RldGFpbHM+CgotLS0KCgoKMzA4MDczMDMKCi0tLQoKYGBge3Igenp6IDMwODA3MzAzLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDgwNzMwMyA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDgwNzMwMycsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDgwNzMwMyA8LSBwYXN0ZTAoUE1JRF8zMDgwNzMwMyRqb3VybmFsLCcgJywgUE1JRF8zMDgwNzMwMyR5ZWFyLCAnICcsIFBNSURfMzA4MDczMDMkbW9udGgsJzsnLCBQTUlEXzMwODA3MzAzJHZvbHVtZSwnKCcsIFBNSURfMzA4MDczMDMkbnVtYmVyLCcpOicsIFBNSURfMzA4MDczMDMkcGFnZXMpCgpQdWJNZWRfMzA4MDczMDMgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDgwNzMwMyRlcHJpbnQpCgpkb2lfMzA4MDczMDMgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDgwNzMwMyRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDgwNzMwMyA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDgwNzMwMyRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwODA3MzAzIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwODA3MzAzJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDgwNzMwMyA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwODA3MzAzJHRpdGxlICwgIiBQTUlEOiAzMDgwNzMwMyAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA4MDczMDMkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDgwNzMwM2AqCgpgciBQdWJNZWRfMzA4MDczMDNgCgpgciBhZGR0aGlzX2lubGluZV8zMDgwNzMwM2AKCmByIFBNSURfMzA4MDczMDMkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDgwNzMwM2AgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDgwNzMwM2AKCmByIGFsdG1ldHJpY0JhZGdlXzMwODA3MzAzYAoKPC9kZXRhaWxzPgoKLS0tCgoKCjMwODA1ODExCgotLS0KCmBgYHtyIHp6eiAzMDgwNTgxMSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA4MDU4MTEgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA4MDU4MTEnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA4MDU4MTEgPC0gcGFzdGUwKFBNSURfMzA4MDU4MTEkam91cm5hbCwnICcsIFBNSURfMzA4MDU4MTEkeWVhciwgJyAnLCBQTUlEXzMwODA1ODExJG1vbnRoLCc7JywgUE1JRF8zMDgwNTgxMSR2b2x1bWUsJygnLCBQTUlEXzMwODA1ODExJG51bWJlciwnKTonLCBQTUlEXzMwODA1ODExJHBhZ2VzKQoKUHViTWVkXzMwODA1ODExIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA4MDU4MTEkZXByaW50KQoKZG9pXzMwODA1ODExIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA4MDU4MTEkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA4MDU4MTEgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA4MDU4MTEkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDgwNTgxMSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDgwNTgxMSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA4MDU4MTEgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDgwNTgxMSR0aXRsZSAsICIgUE1JRDogMzA4MDU4MTEgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwODA1ODExJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA4MDU4MTFgKgoKYHIgUHViTWVkXzMwODA1ODExYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA4MDU4MTFgCgpgciBQTUlEXzMwODA1ODExJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA4MDU4MTFgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA4MDU4MTFgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDgwNTgxMWAKCjwvZGV0YWlscz4KCi0tLQoKCgozMDgwMzg3NAoKLS0tCgpgYGB7ciB6enogMzA4MDM4NzQsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwODAzODc0IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwODAzODc0JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwODAzODc0IDwtIHBhc3RlMChQTUlEXzMwODAzODc0JGpvdXJuYWwsJyAnLCBQTUlEXzMwODAzODc0JHllYXIsICcgJywgUE1JRF8zMDgwMzg3NCRtb250aCwnOycsIFBNSURfMzA4MDM4NzQkdm9sdW1lLCcoJywgUE1JRF8zMDgwMzg3NCRudW1iZXIsJyk6JywgUE1JRF8zMDgwMzg3NCRwYWdlcykKClB1Yk1lZF8zMDgwMzg3NCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwODAzODc0JGVwcmludCkKCmRvaV8zMDgwMzg3NCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwODAzODc0JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwODAzODc0IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwODAzODc0JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA4MDM4NzQgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA4MDM4NzQkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwODAzODc0IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA4MDM4NzQkdGl0bGUgLCAiIFBNSUQ6IDMwODAzODc0ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDgwMzg3NCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwODAzODc0YCoKCmByIFB1Yk1lZF8zMDgwMzg3NGAKCmByIGFkZHRoaXNfaW5saW5lXzMwODAzODc0YAoKYHIgUE1JRF8zMDgwMzg3NCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwODAzODc0YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwODAzODc0YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA4MDM4NzRgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIHp6eiAyOTk5MzAzNywgaW5jbHVkZT1GQUxTRX0KClBNSURfMjk5OTMwMzcgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMjk5OTMwMzcnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMjk5OTMwMzcgPC0gcGFzdGUwKFBNSURfMjk5OTMwMzckam91cm5hbCwnICcsIFBNSURfMjk5OTMwMzckeWVhciwgJyAnLCBQTUlEXzI5OTkzMDM3JG1vbnRoLCc7JywgUE1JRF8yOTk5MzAzNyR2b2x1bWUsJygnLCBQTUlEXzI5OTkzMDM3JG51bWJlciwnKTonLCBQTUlEXzI5OTkzMDM3JHBhZ2VzKQoKUHViTWVkXzI5OTkzMDM3IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMjk5OTMwMzckZXByaW50KQoKZG9pXzI5OTkzMDM3IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMjk5OTMwMzckZG9pKQoKZGltZW5zaW9uQmFkZ2VfMjk5OTMwMzcgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMjk5OTMwMzckZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8yOTk5MzAzNyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8yOTk5MzAzNyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMjk5OTMwMzcgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8yOTk5MzAzNyR0aXRsZSAsICIgUE1JRDogMjk5OTMwMzcgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzI5OTkzMDM3JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMjk5OTMwMzdgKgoKYHIgUHViTWVkXzI5OTkzMDM3YAoKYHIgYWRkdGhpc19pbmxpbmVfMjk5OTMwMzdgCgpgciBQTUlEXzI5OTkzMDM3JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMjk5OTMwMzdgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMjk5OTMwMzdgCgpgciBhbHRtZXRyaWNCYWRnZV8yOTk5MzAzN2AKCjwvZGV0YWlscz4KCi0tLQoKCgoKCjMwODE0NDk2CgotLS0KCmBgYHtyIHp6eiAzMDgxNDQ5NiwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA4MTQ0OTYgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA4MTQ0OTYnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA4MTQ0OTYgPC0gcGFzdGUwKFBNSURfMzA4MTQ0OTYkam91cm5hbCwnICcsIFBNSURfMzA4MTQ0OTYkeWVhciwgJyAnLCBQTUlEXzMwODE0NDk2JG1vbnRoLCc7JywgUE1JRF8zMDgxNDQ5NiR2b2x1bWUsJygnLCBQTUlEXzMwODE0NDk2JG51bWJlciwnKTonLCBQTUlEXzMwODE0NDk2JHBhZ2VzKQoKUHViTWVkXzMwODE0NDk2IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA4MTQ0OTYkZXByaW50KQoKZG9pXzMwODE0NDk2IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA4MTQ0OTYkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA4MTQ0OTYgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA4MTQ0OTYkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDgxNDQ5NiA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDgxNDQ5NiRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA4MTQ0OTYgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDgxNDQ5NiR0aXRsZSAsICIgUE1JRDogMzA4MTQ0OTYgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwODE0NDk2JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA4MTQ0OTZgKgoKYHIgUHViTWVkXzMwODE0NDk2YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA4MTQ0OTZgCgpgciBQTUlEXzMwODE0NDk2JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA4MTQ0OTZgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA4MTQ0OTZgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDgxNDQ5NmAKCjwvZGV0YWlscz4KCi0tLQoKCgoKCgoKCgoKCi0tLQoKYGBge3Igenp6IDMwODIwMjMyLCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDgyMDIzMiA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDgyMDIzMicsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDgyMDIzMiA8LSBwYXN0ZTAoUE1JRF8zMDgyMDIzMiRqb3VybmFsLCcgJywgUE1JRF8zMDgyMDIzMiR5ZWFyLCAnICcsIFBNSURfMzA4MjAyMzIkbW9udGgsJzsnLCBQTUlEXzMwODIwMjMyJHZvbHVtZSwnKCcsIFBNSURfMzA4MjAyMzIkbnVtYmVyLCcpOicsIFBNSURfMzA4MjAyMzIkcGFnZXMpCgpQdWJNZWRfMzA4MjAyMzIgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDgyMDIzMiRlcHJpbnQpCgpkb2lfMzA4MjAyMzIgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDgyMDIzMiRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDgyMDIzMiA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDgyMDIzMiRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwODIwMjMyIDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwODIwMjMyJGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDgyMDIzMiA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwODIwMjMyJHRpdGxlICwgIiBQTUlEOiAzMDgyMDIzMiAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA4MjAyMzIkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDgyMDIzMmAqCgpgciBQdWJNZWRfMzA4MjAyMzJgCgpgciBhZGR0aGlzX2lubGluZV8zMDgyMDIzMmAKCmByIFBNSURfMzA4MjAyMzIkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDgyMDIzMmAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDgyMDIzMmAKCmByIGFsdG1ldHJpY0JhZGdlXzMwODIwMjMyYAoKPC9kZXRhaWxzPgoKCgotLS0KCmBgYHtyIHp6eiAzMDgyMDc4NywgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA4MjA3ODcgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA4MjA3ODcnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA4MjA3ODcgPC0gcGFzdGUwKFBNSURfMzA4MjA3ODckam91cm5hbCwnICcsIFBNSURfMzA4MjA3ODckeWVhciwgJyAnLCBQTUlEXzMwODIwNzg3JG1vbnRoLCc7JywgUE1JRF8zMDgyMDc4NyR2b2x1bWUsJygnLCBQTUlEXzMwODIwNzg3JG51bWJlciwnKTonLCBQTUlEXzMwODIwNzg3JHBhZ2VzKQoKUHViTWVkXzMwODIwNzg3IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA4MjA3ODckZXByaW50KQoKZG9pXzMwODIwNzg3IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA4MjA3ODckZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA4MjA3ODcgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA4MjA3ODckZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDgyMDc4NyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDgyMDc4NyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA4MjA3ODcgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDgyMDc4NyR0aXRsZSAsICIgUE1JRDogMzA4MjA3ODcgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwODIwNzg3JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA4MjA3ODdgKgoKYHIgUHViTWVkXzMwODIwNzg3YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA4MjA3ODdgCgpgciBQTUlEXzMwODIwNzg3JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA4MjA3ODdgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA4MjA3ODdgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDgyMDc4N2AKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwODIwNzg5LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDgyMDc4OSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDgyMDc4OScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDgyMDc4OSA8LSBwYXN0ZTAoUE1JRF8zMDgyMDc4OSRqb3VybmFsLCcgJywgUE1JRF8zMDgyMDc4OSR5ZWFyLCAnICcsIFBNSURfMzA4MjA3ODkkbW9udGgsJzsnLCBQTUlEXzMwODIwNzg5JHZvbHVtZSwnKCcsIFBNSURfMzA4MjA3ODkkbnVtYmVyLCcpOicsIFBNSURfMzA4MjA3ODkkcGFnZXMpCgpQdWJNZWRfMzA4MjA3ODkgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDgyMDc4OSRlcHJpbnQpCgpkb2lfMzA4MjA3ODkgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDgyMDc4OSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDgyMDc4OSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDgyMDc4OSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwODIwNzg5IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwODIwNzg5JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDgyMDc4OSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwODIwNzg5JHRpdGxlICwgIiBQTUlEOiAzMDgyMDc4OSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA4MjA3ODkkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDgyMDc4OWAqCgpgciBQdWJNZWRfMzA4MjA3ODlgCgpgciBhZGR0aGlzX2lubGluZV8zMDgyMDc4OWAKCmByIFBNSURfMzA4MjA3ODkkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDgyMDc4OWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDgyMDc4OWAKCmByIGFsdG1ldHJpY0JhZGdlXzMwODIwNzg5YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciB6enogMzA3OTkyNzcsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzk5Mjc3IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzk5Mjc3JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzk5Mjc3IDwtIHBhc3RlMChQTUlEXzMwNzk5Mjc3JGpvdXJuYWwsJyAnLCBQTUlEXzMwNzk5Mjc3JHllYXIsICcgJywgUE1JRF8zMDc5OTI3NyRtb250aCwnOycsIFBNSURfMzA3OTkyNzckdm9sdW1lLCcoJywgUE1JRF8zMDc5OTI3NyRudW1iZXIsJyk6JywgUE1JRF8zMDc5OTI3NyRwYWdlcykKClB1Yk1lZF8zMDc5OTI3NyA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzk5Mjc3JGVwcmludCkKCmRvaV8zMDc5OTI3NyA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzk5Mjc3JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzk5Mjc3IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzk5Mjc3JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3OTkyNzcgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3OTkyNzckZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzk5Mjc3IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3OTkyNzckdGl0bGUgLCAiIFBNSUQ6IDMwNzk5Mjc3ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDc5OTI3NyR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzk5Mjc3YCoKCmByIFB1Yk1lZF8zMDc5OTI3N2AKCmByIGFkZHRoaXNfaW5saW5lXzMwNzk5Mjc3YAoKYHIgUE1JRF8zMDc5OTI3NyRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzk5Mjc3YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzk5Mjc3YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3OTkyNzdgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIHp6eiAzMDgxNDEyMCwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA4MTQxMjAgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA4MTQxMjAnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA4MTQxMjAgPC0gcGFzdGUwKFBNSURfMzA4MTQxMjAkam91cm5hbCwnICcsIFBNSURfMzA4MTQxMjAkeWVhciwgJyAnLCBQTUlEXzMwODE0MTIwJG1vbnRoLCc7JywgUE1JRF8zMDgxNDEyMCR2b2x1bWUsJygnLCBQTUlEXzMwODE0MTIwJG51bWJlciwnKTonLCBQTUlEXzMwODE0MTIwJHBhZ2VzKQoKUHViTWVkXzMwODE0MTIwIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA4MTQxMjAkZXByaW50KQoKZG9pXzMwODE0MTIwIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA4MTQxMjAkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA4MTQxMjAgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA4MTQxMjAkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDgxNDEyMCA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDgxNDEyMCRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA4MTQxMjAgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDgxNDEyMCR0aXRsZSAsICIgUE1JRDogMzA4MTQxMjAgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwODE0MTIwJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA4MTQxMjBgKgoKYHIgUHViTWVkXzMwODE0MTIwYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA4MTQxMjBgCgpgciBQTUlEXzMwODE0MTIwJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA4MTQxMjBgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA4MTQxMjBgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDgxNDEyMGAKCjwvZGV0YWlscz4KCi0tLQoKYGBge3Igenp6IDMwNzk5NTA1LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDc5OTUwNSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDc5OTUwNScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDc5OTUwNSA8LSBwYXN0ZTAoUE1JRF8zMDc5OTUwNSRqb3VybmFsLCcgJywgUE1JRF8zMDc5OTUwNSR5ZWFyLCAnICcsIFBNSURfMzA3OTk1MDUkbW9udGgsJzsnLCBQTUlEXzMwNzk5NTA1JHZvbHVtZSwnKCcsIFBNSURfMzA3OTk1MDUkbnVtYmVyLCcpOicsIFBNSURfMzA3OTk1MDUkcGFnZXMpCgpQdWJNZWRfMzA3OTk1MDUgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDc5OTUwNSRlcHJpbnQpCgpkb2lfMzA3OTk1MDUgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDc5OTUwNSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDc5OTUwNSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDc5OTUwNSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNzk5NTA1IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNzk5NTA1JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDc5OTUwNSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNzk5NTA1JHRpdGxlICwgIiBQTUlEOiAzMDc5OTUwNSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA3OTk1MDUkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDc5OTUwNWAqCgpgciBQdWJNZWRfMzA3OTk1MDVgCgpgciBhZGR0aGlzX2lubGluZV8zMDc5OTUwNWAKCmByIFBNSURfMzA3OTk1MDUkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDc5OTUwNWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDc5OTUwNWAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNzk5NTA1YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciB6enogMjk5NjY1MDUsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzI5OTY2NTA1IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzI5OTY2NTA1JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzI5OTY2NTA1IDwtIHBhc3RlMChQTUlEXzI5OTY2NTA1JGpvdXJuYWwsJyAnLCBQTUlEXzI5OTY2NTA1JHllYXIsICcgJywgUE1JRF8yOTk2NjUwNSRtb250aCwnOycsIFBNSURfMjk5NjY1MDUkdm9sdW1lLCcoJywgUE1JRF8yOTk2NjUwNSRudW1iZXIsJyk6JywgUE1JRF8yOTk2NjUwNSRwYWdlcykKClB1Yk1lZF8yOTk2NjUwNSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzI5OTY2NTA1JGVwcmludCkKCmRvaV8yOTk2NjUwNSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzI5OTY2NTA1JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzI5OTY2NTA1IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzI5OTY2NTA1JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMjk5NjY1MDUgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMjk5NjY1MDUkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzI5OTY2NTA1IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMjk5NjY1MDUkdGl0bGUgLCAiIFBNSUQ6IDI5OTY2NTA1ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8yOTk2NjUwNSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzI5OTY2NTA1YCoKCmByIFB1Yk1lZF8yOTk2NjUwNWAKCmByIGFkZHRoaXNfaW5saW5lXzI5OTY2NTA1YAoKYHIgUE1JRF8yOTk2NjUwNSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzI5OTY2NTA1YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzI5OTY2NTA1YAoKYHIgYWx0bWV0cmljQmFkZ2VfMjk5NjY1MDVgCgo8L2RldGFpbHM+CgotLS0KCgotLS0KCi0gKipDb21wYXJpc29uIG9mIFR1bW9yIFJlZ3Jlc3Npb24gR3JhZGluZyBvZiBSZXNpZHVhbCBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSBGb2xsb3dpbmcgTmVvYWRqdXZhbnQgQ2hlbW90aGVyYXB5IFdpdGhvdXQgUmFkaWF0aW9uIFdvdWxkIEZld2VyIFRpZXItU3RyYXRpZmljYXRpb24gQmUgRmF2b3JhYmxlIFRvd2FyZCBTdGFuZGFyZGl6YXRpb24/KioKCmh0dHBzOi8vam91cm5hbHMubHd3LmNvbS9hanNwL0Fic3RyYWN0LzIwMTkvMDMwMDAvQ29tcGFyaXNvbl9vZl9UdW1vcl9SZWdyZXNzaW9uX0dyYWRpbmdfb2ZfUmVzaWR1YWwuNS5hc3B4CgoKLS0tCgotICoqSXNvbGF0ZWQgcHVsbW9uYXJ5IHJlY3VycmVuY2UgYWZ0ZXIgcmVzZWN0aW9uIG9mIHBhbmNyZWF0aWMgY2FuY2VyOiB0aGUgZWZmZWN0IG9mIHBhdGllbnQgZmFjdG9ycyBhbmQgdHJlYXRtZW50IG1vZGFsaXRpZXMgb24gc3Vydml2YWwqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL2Ficy9waWkvUzEzNjUxODJYMTkzMDAwMjQKCgotLS0KCi0gKipNREgxIGFuZCBNUFA3IHJlZ3VsYXRlIGF1dG9waGFneSBpbiBwYW5jcmVhdGljIGR1Y3RhbCBhZGVub2NhcmNpbm9tYSoqCgpodHRwOi8vY2FuY2VycmVzLmFhY3Jqb3VybmFscy5vcmcvY29udGVudC9lYXJseS8yMDE5LzAyLzE0LzAwMDgtNTQ3Mi5DQU4tMTgtMjU1My5zaG9ydAoKCi0tLQoKLSAqKkNoYXJhY3RlcmlzdGljcyBhbmQgbG9uZy10ZXJtIHN1cnZpdmFsIG9mIHJlc2VjdGVkIHBhbmNyZWF0aWMgY3lzdGljIG5lb3BsYXNtcyBpbiBGaW5sYW5kLiBUaGUgZmlyc3QgbmF0aW9ud2lkZSByZXRyb3NwZWN0aXZlIGNvaG9ydCBhbmFseXNpcyoqCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MxNDI0MzkwMzE5MzAwMzE2CgotLS0KCi0gKipFeCB2aXZvIG9yZ2Fub3R5cGljIGN1bHR1cmUgc3lzdGVtIG9mIHByZWNpc2lvbi1jdXQgc2xpY2VzIG9mIGh1bWFuIHBhbmNyZWF0aWMgZHVjdGFsIGFkZW5vY2FyY2lub21hKioKCmh0dHBzOi8vd3d3Lm5hdHVyZS5jb20vYXJ0aWNsZXMvczQxNTk4LTAxOS0zODYwMy13CgotLS0KCi0gKipEaXJlY3QgSW50ZXJhY3Rpb25zIFdpdGggQ2FuY2VyLUFzc29jaWF0ZWQgRmlicm9ibGFzdHMgTGVhZCB0byBFbmhhbmNlZCBQYW5jcmVhdGljIENhbmNlciBTdGVtIENlbGwgRnVuY3Rpb24qKgoKaHR0cHM6Ly9qb3VybmFscy5sd3cuY29tL3BhbmNyZWFzam91cm5hbC9BYnN0cmFjdC9wdWJsaXNoYWhlYWQvRGlyZWN0X0ludGVyYWN0aW9uc19XaXRoX0NhbmNlcl9Bc3NvY2lhdGVkLjk4NDY0LmFzcHgKCgotLS0KCi0gKipQcmVkaWN0aW9uIG9mIFJlY3VycmVuY2UgV2l0aCBLUkFTIE11dGF0aW9uYWwgQnVyZGVuIFVzaW5nIFVsdHJhc2Vuc2l0aXZlIERpZ2l0YWwgUG9seW1lcmFzZSBDaGFpbiBSZWFjdGlvbiBvZiBSYWRpYWwgUmVzZWN0aW9uIE1hcmdpbiBvZiBSZXNlY3RlZCBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSoqCgpodHRwczovL2pvdXJuYWxzLmx3dy5jb20vcGFuY3JlYXNqb3VybmFsL0Fic3RyYWN0L3B1Ymxpc2hhaGVhZC9QcmVkaWN0aW9uX29mX1JlY3VycmVuY2VfV2l0aF9LUkFTX011dGF0aW9uYWwuOTg0NjguYXNweAoKLS0tCgotICoqVGhlIElMLTEvSUwtMSByZWNlcHRvciBheGlzIGFuZCB0dW1vciBjZWxsIHJlbGVhc2VkIGluZmxhbW1hc29tZSBhZGFwdG9yIEFTQyBhcmUga2V5IHJlZ3VsYXRvcnMgb2YgVFNMUCBzZWNyZXRpb24gYnkgY2FuY2VyIGFzc29jaWF0ZWQgZmlicm9ibGFzdHMgaW4gcGFuY3JlYXRpYyBjYW5jZXIqKgoKaHR0cHM6Ly9qaXRjLmJpb21lZGNlbnRyYWwuY29tL2FydGljbGVzLzEwLjExODYvczQwNDI1LTAxOS0wNTIxLTQKCgotLS0KCi0gKipFeHByZXNzaW9uIGFuZCBDbGluaWNhbCBTaWduaWZpY2FuY2Ugb2YgUHJvdGVpbiBLaW5hc2UgUk5B4oCTTGlrZSBFbmRvcGxhc21pYyBSZXRpY3VsdW0gS2luYXNlIGFuZCBQaG9zcGhvcnlsYXRlZCBFdWthcnlvdGljIEluaXRpYXRpb24gRmFjdG9yIDLOsSBpbiBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSoqCgoKaHR0cHM6Ly9qb3VybmFscy5sd3cuY29tL3BhbmNyZWFzam91cm5hbC9BYnN0cmFjdC9wdWJsaXNoYWhlYWQvRXhwcmVzc2lvbl9hbmRfQ2xpbmljYWxfU2lnbmlmaWNhbmNlX29mX1Byb3RlaW4uOTg0NjMuYXNweAoKCi0tLQoKLSAqKlRoZSBHZW5ldGljIEJhc2lzIG9mIFRyYW5zY3JpcHRpb25hbCBhbmQgU3BhdGlhbCBIZXRlcm9nZW5laXR5IG9mIFNxdWFtb3VzIEZlYXR1cmVzIGluIFBhbmNyZWF0aWMgRHVjdGFsIEFkZW5vY2FyY2lub21hKioKCmh0dHBzOi8vZXVyb3BlcG1jLm9yZy9hYnN0cmFjdC9wcHIvcHByNzAxNjIKCi0tLQoKCi0gKipUaGUgR2VuZXRpYyBCYXNpcyBvZiBUcmFuc2NyaXB0aW9uYWwgYW5kIFNwYXRpYWwgSGV0ZXJvZ2VuZWl0eSBvZiBTcXVhbW91cyBGZWF0dXJlcyBpbiBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSoqCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMzMTEzMDYyNV9UaGVfR2VuZXRpY19CYXNpc19vZl9UcmFuc2NyaXB0aW9uYWxfYW5kX1NwYXRpYWxfSGV0ZXJvZ2VuZWl0eV9vZl9TcXVhbW91c19GZWF0dXJlc19pbl9QYW5jcmVhdGljX0R1Y3RhbF9BZGVub2NhcmNpbm9tYQoKLS0tCgotICoqUHJlZGljdGlvbiBvZiBSZWN1cnJlbmNlIFdpdGggS1JBUyBNdXRhdGlvbmFsIEJ1cmRlbiBVc2luZyBVbHRyYXNlbnNpdGl2ZSBEaWdpdGFsIFBvbHltZXJhc2UgQ2hhaW4gUmVhY3Rpb24gb2YgUmFkaWFsIFJlc2VjdGlvbiBNYXJnaW4gb2YgUmVzZWN0ZWQgUGFuY3JlYXRpYyBEdWN0YWwgQWRlbm9jYXJjaW5vbWEqKgoKaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMzEwNTg2NjJfUHJlZGljdGlvbl9vZl9SZWN1cnJlbmNlX1dpdGhfS1JBU19NdXRhdGlvbmFsX0J1cmRlbl9Vc2luZ19VbHRyYXNlbnNpdGl2ZV9EaWdpdGFsX1BvbHltZXJhc2VfQ2hhaW5fUmVhY3Rpb25fb2ZfUmFkaWFsX1Jlc2VjdGlvbl9NYXJnaW5fb2ZfUmVzZWN0ZWRfUGFuY3JlYXRpY19EdWN0YWxfQWRlbm9jYXJjaW5vbWEKCi0tLQoKLSAqKk1vbGVjdWxhciBzdWJ0eXBlcyBvZiBwYW5jcmVhdGljIGNhbmNlcioqCgpodHRwczovL3d3dy5uYXR1cmUuY29tL2FydGljbGVzL3M0MTU3NS0wMTktMDEwOS15CgoKLS0tCgoKLSAqKkEgY2FzZSBvZiBoaWdo4oCQZ3JhZGUgcGFuY3JlYXRpYyBpbnRyYWVwaXRoZWxpYWwgbmVvcGxhc2lhIGNvbmNvbWl0YW50IHdpdGggdHlwZSAxIGF1dG9pbW11bmUgcGFuY3JlYXRpdGlzOiB0aGUgcHJvY2VzcyB1bmRlcmx5aW5nIGJvdGggY29uZGl0aW9ucyoqCgpodHRwczovL29ubGluZWxpYnJhcnkud2lsZXkuY29tL2RvaS9hYnMvMTAuMTExMS9waW4uMTI3NjgKCgoKLS0tCgotICoqUHJlLWV4aXN0aW5nIEZ1bmN0aW9uYWwgSGV0ZXJvZ2VuZWl0eSBvZiBUdW1vcmlnZW5pYyBDb21wYXJ0bWVudCBhcyB0aGUgT3JpZ2luIG9mIENoZW1vcmVzaXN0YW5jZSBpbiBQYW5jcmVhdGljIFR1bW9ycyoqCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MyMjExMTI0NzE5MzAwNjZYCgoKCi0tLQoKLSAqKkludHJhZHVjdGFsIHR1YnVsYXIgcGFwaWxsYXJ5IG5lb3BsYXNtIChJVFBOKSwgYSBub3ZlbCBlbnRpdHkgb2YgcGFuY3JlYXRpYyBlcGl0aGVsaWFsIG5lb3BsYXNtcyBhbmQgcHJlY3Vyc29yIG9mIGNhbmNlcjogQSBjYXNlIHJlcG9ydCBhbmQgcmV2aWV3IG9mIHRoZSBsaXRlcmF0dXJlKioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzIyMTAyNjEyMTkzMDA0OTUKCi0tLQoKLSAqKkVhcmx5IERldGVjdGlvbiBvZiBQYW5jcmVhdGljIENhbmNlcjogT3Bwb3J0dW5pdGllcyBhbmQgQ2hhbGxlbmdlcyoqCgpodHRwczovL2FjLmVscy1jZG4uY29tL1MwMDE2NTA4NTE5MzAzNTgwLzEtczIuMC1TMDAxNjUwODUxOTMwMzU4MC1tYWluLnBkZj9fdGlkPTUyNTg3MTBmLWJhMGUtNDgwMC05ZjZhLTJjOWIzYTY2ZDJlMCZhY2RuYXQ9MTU0OTU1MDMwNl80ZDFiMDc0OGQ4N2MyZmE5YjU3MjMyYmNjY2EyNGYyNQoKLS0tCgotICoqUGF0aHdheXMgb2YgUHJvZ3Jlc3Npb24gRnJvbSBJbnRyYWR1Y3RhbCBQYXBpbGxhcnkgTXVjaW5vdXMgTmVvcGxhc20gdG8gUGFuY3JlYXRpYyBEdWN0YWwgQWRlbm9jYXJjaW5vbWEgQmFzZWQgb24gTW9sZWN1bGFyIEZlYXR1cmVzKioKCmh0dHBzOi8vd3d3Lmdhc3Ryb2pvdXJuYWwub3JnL2FydGljbGUvUzAwMTYtNTA4NSgxOCkzNTE2MC02L2Z1bGx0ZXh0P2RnY2lkPXJhdmVuX2pic19ldG9jX2VtYWlsJm1vYmlsZVVpPTAmZmJjbGlkPUl3QVIxUFA2bVRMU2xjSWdKWU9CSEU2a1NLSUY1dFhTLTh3UklPNFBFeHlyMGNNeTF5c0VjMDV3dTVnM2MKCi0tLQoKLSAqKkZpYnJvYmxhc3RzIGluIFBhbmNyZWF0aWMgRHVjdGFsIEFkZW5vY2FyY2lub21hOiBiaW9sb2dpY2FsIG1lY2hhbmlzbXMgYW5kIHRoZXJhcGV1dGljIHRhcmdldHMqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDAxNjUwODUxOTMwMzU5MgoKCgotLS0KCi0gKipOYXR1cmFsIEhpc3RvcnkgYW5kIFRyZWF0bWVudCBUcmVuZHMgaW4gUGFuY3JlYXRpYyBDYW5jZXIgU3VidHlwZXMqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEwMDcvczExNjA1LTAxOS0wNDExMy0zCgoKLS0tCgotICoqUHJldmFsZW5jZSBvZiBHZXJtbGluZSBNdXRhdGlvbnMgQXNzb2NpYXRlZCB3aXRoIENhbmNlciBSaXNrIGluIFBhdGllbnRzIFdpdGggSW50cmFkdWN0YWwgUGFwaWxsYXJ5IE11Y2lub3VzIE5lb3BsYXNtcyoqCgpodHRwczovL3d3dy5nYXN0cm9qb3VybmFsLm9yZy9hcnRpY2xlL1MwMDE2LTUwODUoMTkpMzAzNTMtMS9mdWxsdGV4dAoKLS0tCgotICoqUFJSWDEgaXNvZm9ybXMgY29vcGVyYXRlIHdpdGggRk9YTTEgdG8gcmVndWxhdGUgdGhlIEROQSBkYW1hZ2UgcmVzcG9uc2UgaW4gcGFuY3JlYXRpYyBjYW5jZXIgY2VsbHMqKgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDEzODgtMDE5LTA3MjUtNgoKLS0tCgotICoqU2lnbmFsaW5nIE5ldHdvcmtzIHRoYXQgQ29udHJvbCBDZWxsdWxhciBQbGFzdGljaXR5IGluIFBhbmNyZWF0aWMgVHVtb3JpZ2VuZXNpcywgUHJvZ3Jlc3Npb24gYW5kIE1ldGFzdGFzaXMqKgoKaHR0cHM6Ly93d3cuZ2FzdHJvam91cm5hbC5vcmcvYXJ0aWNsZS9TMDAxNi01MDg1KDE5KTMwMzUxLTgvZnVsbHRleHQKCi0tLQoKLSAqKkhlczEgcGxheXMgYW4gZXNzZW50aWFsIHJvbGUgaW4gS3Jhcy1kcml2ZW4gcGFuY3JlYXRpYyB0dW1vcmlnZW5lc2lzKioKCmh0dHBzOi8vd3d3Lm5hdHVyZS5jb20vYXJ0aWNsZXMvczQxMzg4LTAxOS0wNzE4LTUKCi0tLQoKLSAqKkRpYWdub3NpcyBhbmQgTWFuYWdlbWVudCBvZiBQYW5jcmVhdGljIEFkZW5vY2FyY2lub21hIGluIHRoZSBCYWNrZ3JvdW5kIG9mIENocm9uaWMgUGFuY3JlYXRpdGlzOiBDb3JlIElzc3VlcyoqCgpodHRwczovL3d3dy5rYXJnZXIuY29tL0FydGljbGUvQWJzdHJhY3QvNDk2NTA3CgotLS0KCi0gKipNREgxIGFuZCBNUFA3IHJlZ3VsYXRlIGF1dG9waGFneSBpbiBwYW5jcmVhdGljIGR1Y3RhbCBhZGVub2NhcmNpbm9tYSoqCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3Byb2ZpbGUvUGFkaG1hbmFuZF9TdWRoYWthcjIvcHVibGljYXRpb24vMzMxMDk5MTkxX01ESDFfYW5kX01QUDdfcmVndWxhdGVfYXV0b3BoYWd5X2luX3BhbmNyZWF0aWNfZHVjdGFsX2FkZW5vY2FyY2lub21hL2xpbmtzLzVjNjVhMTQ5NDU4NTE1ODJjM2U5NWRmNC9NREgxLWFuZC1NUFA3LXJlZ3VsYXRlLWF1dG9waGFneS1pbi1wYW5jcmVhdGljLWR1Y3RhbC1hZGVub2NhcmNpbm9tYS5wZGYKCi0tLQoKLSAqKkN5c3QgRmx1aWQgQmlvc2lnbmF0dXJlIHRvIFByZWRpY3QgSW50cmFkdWN0YWwgUGFwaWxsYXJ5IE11Y2lub3VzIE5lb3BsYXNtcyBvZiB0aGUgUGFuY3JlYXMgd2l0aCBIaWdoIE1hbGlnbmFudCBQb3RlbnRpYWwqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMTA3Mjc1MTUxOTMwMTQ5OAoKLS0tCgpgYGB7ciB6enogMzA3OTIwNDYsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzkyMDQ2IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzkyMDQ2JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzkyMDQ2IDwtIHBhc3RlMChQTUlEXzMwNzkyMDQ2JGpvdXJuYWwsJyAnLCBQTUlEXzMwNzkyMDQ2JHllYXIsICcgJywgUE1JRF8zMDc5MjA0NiRtb250aCwnOycsIFBNSURfMzA3OTIwNDYkdm9sdW1lLCcoJywgUE1JRF8zMDc5MjA0NiRudW1iZXIsJyk6JywgUE1JRF8zMDc5MjA0NiRwYWdlcykKClB1Yk1lZF8zMDc5MjA0NiA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzkyMDQ2JGVwcmludCkKCmRvaV8zMDc5MjA0NiA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzkyMDQ2JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzkyMDQ2IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzkyMDQ2JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3OTIwNDYgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3OTIwNDYkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzkyMDQ2IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3OTIwNDYkdGl0bGUgLCAiIFBNSUQ6IDMwNzkyMDQ2ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDc5MjA0NiR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzkyMDQ2YCoKCmByIFB1Yk1lZF8zMDc5MjA0NmAKCmByIGFkZHRoaXNfaW5saW5lXzMwNzkyMDQ2YAoKYHIgUE1JRF8zMDc5MjA0NiRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzkyMDQ2YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzkyMDQ2YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3OTIwNDZgCgo8L2RldGFpbHM+CgoKLS0tCgpgYGB7ciB6enogMzA2Njg4ODYsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNjY4ODg2IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNjY4ODg2JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNjY4ODg2IDwtIHBhc3RlMChQTUlEXzMwNjY4ODg2JGpvdXJuYWwsJyAnLCBQTUlEXzMwNjY4ODg2JHllYXIsICcgJywgUE1JRF8zMDY2ODg4NiRtb250aCwnOycsIFBNSURfMzA2Njg4ODYkdm9sdW1lLCcoJywgUE1JRF8zMDY2ODg4NiRudW1iZXIsJyk6JywgUE1JRF8zMDY2ODg4NiRwYWdlcykKClB1Yk1lZF8zMDY2ODg4NiA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNjY4ODg2JGVwcmludCkKCmRvaV8zMDY2ODg4NiA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNjY4ODg2JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNjY4ODg2IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNjY4ODg2JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA2Njg4ODYgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA2Njg4ODYkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNjY4ODg2IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA2Njg4ODYkdGl0bGUgLCAiIFBNSUQ6IDMwNjY4ODg2ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDY2ODg4NiR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNjY4ODg2YCoKCmByIFB1Yk1lZF8zMDY2ODg4NmAKCmByIGFkZHRoaXNfaW5saW5lXzMwNjY4ODg2YAoKYHIgUE1JRF8zMDY2ODg4NiRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNjY4ODg2YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNjY4ODg2YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA2Njg4ODZgCgo8L2RldGFpbHM+CgoKCgoKCi0tLQoKYGBge3Igenp6IDMwNjg2NzY5LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDY4Njc2OSA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDY4Njc2OScsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDY4Njc2OSA8LSBwYXN0ZTAoUE1JRF8zMDY4Njc2OSRqb3VybmFsLCcgJywgUE1JRF8zMDY4Njc2OSR5ZWFyLCAnICcsIFBNSURfMzA2ODY3NjkkbW9udGgsJzsnLCBQTUlEXzMwNjg2NzY5JHZvbHVtZSwnKCcsIFBNSURfMzA2ODY3NjkkbnVtYmVyLCcpOicsIFBNSURfMzA2ODY3NjkkcGFnZXMpCgpQdWJNZWRfMzA2ODY3NjkgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDY4Njc2OSRlcHJpbnQpCgpkb2lfMzA2ODY3NjkgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDY4Njc2OSRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDY4Njc2OSA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDY4Njc2OSRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNjg2NzY5IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNjg2NzY5JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDY4Njc2OSA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNjg2NzY5JHRpdGxlICwgIiBQTUlEOiAzMDY4Njc2OSAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA2ODY3NjkkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDY4Njc2OWAqCgpgciBQdWJNZWRfMzA2ODY3NjlgCgpgciBhZGR0aGlzX2lubGluZV8zMDY4Njc2OWAKCmByIFBNSURfMzA2ODY3NjkkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDY4Njc2OWAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDY4Njc2OWAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNjg2NzY5YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciB6enogMzAxMzA2NjQsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwMTMwNjY0IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwMTMwNjY0JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwMTMwNjY0IDwtIHBhc3RlMChQTUlEXzMwMTMwNjY0JGpvdXJuYWwsJyAnLCBQTUlEXzMwMTMwNjY0JHllYXIsICcgJywgUE1JRF8zMDEzMDY2NCRtb250aCwnOycsIFBNSURfMzAxMzA2NjQkdm9sdW1lLCcoJywgUE1JRF8zMDEzMDY2NCRudW1iZXIsJyk6JywgUE1JRF8zMDEzMDY2NCRwYWdlcykKClB1Yk1lZF8zMDEzMDY2NCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwMTMwNjY0JGVwcmludCkKCmRvaV8zMDEzMDY2NCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwMTMwNjY0JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwMTMwNjY0IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwMTMwNjY0JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzAxMzA2NjQgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzAxMzA2NjQkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwMTMwNjY0IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzAxMzA2NjQkdGl0bGUgLCAiIFBNSUQ6IDMwMTMwNjY0ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDEzMDY2NCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwMTMwNjY0YCoKCmByIFB1Yk1lZF8zMDEzMDY2NGAKCmByIGFkZHRoaXNfaW5saW5lXzMwMTMwNjY0YAoKYHIgUE1JRF8zMDEzMDY2NCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwMTMwNjY0YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwMTMwNjY0YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzAxMzA2NjRgCgo8L2RldGFpbHM+CgotLS0KCi0gKipJbnRlZ3JhdGlvbiBvZiBHZW5vbWljIGFuZCBUcmFuc2NyaXB0aW9uYWwgRmVhdHVyZXMgaW4gUGFuY3JlYXRpYyBDYW5jZXIgUmV2ZWFscyBJbmNyZWFzZWQgQ2VsbCBDeWNsZSBQcm9ncmVzc2lvbiBpbiBNZXRhc3Rhc2VzKioKCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMzMDY2MzYxMl9JbnRlZ3JhdGlvbl9vZl9HZW5vbWljX2FuZF9UcmFuc2NyaXB0aW9uYWxfRmVhdHVyZXNfaW5fUGFuY3JlYXRpY19DYW5jZXJfUmV2ZWFsc19JbmNyZWFzZWRfQ2VsbF9DeWNsZV9Qcm9ncmVzc2lvbl9pbl9NZXRhc3Rhc2VzCgoKLS0tCgotICoqR2VybWxpbmUgQlJDQTIgSzMzMjZYIGFuZCBDSEVLMiBJMTU3VCBNdXRhdGlvbnMgSW5jcmVhc2UgUmlzayBmb3IgU3BvcmFkaWMgUGFuY3JlYXRpYyBEdWN0YWwgQWRlbm9jYXJjaW5vbWEqKgoKaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMzA2MDU1MTFfR2VybWxpbmVfQlJDQTJfSzMzMjZYX2FuZF9DSEVLMl9JMTU3VF9NdXRhdGlvbnNfSW5jcmVhc2VfUmlza19mb3JfU3BvcmFkaWNfUGFuY3JlYXRpY19EdWN0YWxfQWRlbm9jYXJjaW5vbWEKCi0tLQoKLSAqKkdlcm1saW5lIEJSQ0EyIEszMzI2WCBhbmQgQ0hFSzIgSTE1N1QgTXV0YXRpb25zIEluY3JlYXNlIFJpc2sgZm9yIFNwb3JhZGljIFBhbmNyZWF0aWMgRHVjdGFsIEFkZW5vY2FyY2lub21hKioKCgpodHRwczovL29ubGluZWxpYnJhcnkud2lsZXkuY29tL2RvaS9hYnMvMTAuMTAwMi9pamMuMzIxMjcKCi0tLQoKCgoKLS0tCgotICoqTWFpbiBEdWN0IERpbGF0YXRpb24gSXMgdGhlIEJlc3QgUHJlZGljdG9yIG9mIEhpZ2gtZ3JhZGUgRHlzcGxhc2lhIG9yIEludmFzaW9uIGluIEludHJhZHVjdGFsIFBhcGlsbGFyeSBNdWNpbm91cyBOZW9wbGFzbXMgb2YgdGhlIFBhbmNyZWFzKioKCmh0dHBzOi8vam91cm5hbHMubHd3LmNvbS9hbm5hbHNvZnN1cmdlcnkvQWJzdHJhY3QvcHVibGlzaGFoZWFkL01haW5fRHVjdF9EaWxhdGF0aW9uX0lzX3RoZV9CZXN0X1ByZWRpY3Rvcl9vZi45NTI0OC5hc3B4CgoKLS0tCgotICoqVGltaW5nIEJ1dCBOb3QgUGF0dGVybnMgb2YgUmVjdXJyZW5jZSBJcyBEaWZmZXJlbnQgQmV0d2VlbiBOb2RlLW5lZ2F0aXZlIGFuZCBOb2RlLXBvc2l0aXZlIFJlc2VjdGVkIFBhbmNyZWF0aWMgQ2FuY2VyLioqCgpodHRwczovL2V1cm9wZXBtYy5vcmcvYWJzdHJhY3QvbWVkLzMwNjcyNzk2CgotLS0KCi0gKipVdGlsaXR5IG9mIGN5dG9tb3JwaG9sb2d5IGluIGRpc3Rpbmd1aXNoaW5nIHNvbGlkIHBzZXVkb3BhcGlsbGFyeSBuZW9wbGFzbSBvZiBwYW5jcmVhcyBmcm9tIHBhbmNyZWF0aWMgbmV1cm9lbmRvY3JpbmUgdHVtb3Igd2l0aCBlbXBoYXNpcyBvbiBudWNsZWFyIGZvbGRzIGFuZCBudWNsZWFyIGdyb292ZXMqKgoKaHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvYWJzLzEwLjEwMDIvZGMuMjQxNDUKCi0tLQoKLSAqKlRIWjEgcmV2ZWFscyBDREs3LWRlcGVuZGVudCB0cmFuc2NyaXB0aW9uYWwgYWRkaWN0aW9ucyBpbiBwYW5jcmVhdGljIGNhbmNlcioqCgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDEzODgtMDE5LTA3MDEtMQoKLS0tCgotICoqUHJlZGljdGl2ZSBhbmQgUHJvZ25vc3RpYyBQcm9wZXJ0aWVzIG9mIEh1bWFuIEVxdWlsaWJyYXRpdmUgTnVjbGVvc2lkZSBUcmFuc3BvcnRlciAxIEV4cHJlc3Npb24gaW4gR2VtY2l0YWJpbmUtVHJlYXRlZCBQYW5jcmVhdG9iaWxpYXJ5IENhbmNlcjogQSBNZXRhLUFuYWx5c2lzKioKCmh0dHA6Ly9hc2NvcHVicy5vcmcvZG9pL2Ficy8xMC4xMjAwL1BPLjE4LjAwMjQwCgoKCgotLS0KCi0gKipRdWFzaW1lc2VuY2h5bWFsIHBoZW5vdHlwZSBwcmVkaWN0cyBzeXN0ZW1pYyBtZXRhc3Rhc2lzIGluIHBhbmNyZWF0aWMgZHVjdGFsIGFkZW5vY2FyY2lub21hKioKCmh0dHBzOi8vd3d3Lm5hdHVyZS5jb20vYXJ0aWNsZXMvczQxMzc5LTAxOC0wMTk2LTIKCi0tLQoKLSAqKlN1cmdpY2FsbHkgcmVzZWN0ZWQgcGFuY3JlYXRpYyBtZXRhc3Rhc2lzIGZyb20gbmFzYWwgbWFsaWduYW50IG1lbGFub21hOiBjYXNlIHJlcG9ydCBhbmQgbGl0ZXJhdHVyZSByZXZpZXcqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEwMDcvczEyMzI4LTAxOS0wMDkzNi00CgoKLS0tCgotICoqUHJvZ25vc3RpYyBSb2xlIG9mIEhpZ2gtR3JhZGUgVHVtb3IgQnVkZGluZyBpbiBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYTogQSBTeXN0ZW1hdGljIFJldmlldyBhbmQgTWV0YS1BbmFseXNpcyB3aXRoIGEgRm9jdXMgb24gRXBpdGhlbGlhbCB0byBNZXNlbmNoeW1hbCBUcmFuc2l0aW9uKioKCmh0dHBzOi8vcmVzLm1kcGkuY29tL2NhbmNlcnMvY2FuY2Vycy0xMS0wMDExMy9hcnRpY2xlX2RlcGxveS9jYW5jZXJzLTExLTAwMTEzLnBkZgoKLS0tCgotICoqQ29tcGFyYXRpdmUgQWNjdXJhY3kgb2YgVHVtb3IgU2l6ZSBBc3Nlc3NtZW50IGFuZCBTdGFnZSBBbmFseXNpcyBieSBJbWFnaW5nIE1vZGFsaXRpZXMgVmVyc3VzIEdyb3NzIEV4YW1pbmF0aW9uIGZvciBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSoqCgpodHRwczovL2pvdXJuYWxzLmx3dy5jb20vcGFuY3JlYXNqb3VybmFsL0Fic3RyYWN0LzIwMTkvMDIwMDAvQ29tcGFyYXRpdmVfQWNjdXJhY3lfb2ZfVHVtb3JfU2l6ZV9Bc3Nlc3NtZW50X2FuZC4xMy5hc3B4CgoKCi0tLQoKLSAqKkJsb2NraW5nIENYQ0xz4oCTQ1hDUjIgYXhpcyBpbiB0dW1vcuKAk3N0cm9tYWwgaW50ZXJhY3Rpb25zIGNvbnRyaWJ1dGVzIHRvIHN1cnZpdmFsIGluIGEgbW91c2UgbW9kZWwgb2YgcGFuY3JlYXRpYyBkdWN0YWwgYWRlbm9jYXJjaW5vbWEgdGhyb3VnaCByZWR1Y2VkIGNlbGwgaW52YXNpb24vbWlncmF0aW9uIGFuZCBhIHNoaWZ0IG9mIGltbXVuZS1pbmZsYW1tYXRvcnkgbWljcm9lbnZpcm9ubWVudCoqCgpodHRwczovL3d3dy5uYXR1cmUuY29tL2FydGljbGVzL3M0MTM4OS0wMTgtMDExNy04CgotLS0KCi0gKipQYXRod2F5cyBvZiBQcm9ncmVzc2lvbiBGcm9tIEludHJhZHVjdGFsIFBhcGlsbGFyeSBNdWNpbm91cyBOZW9wbGFzbSB0byBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSBCYXNlZCBvbiBNb2xlY3VsYXIgRmVhdHVyZXMqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDAxNjUwODUxODM1MTYwNgoKCgoKLS0tCgoKLSAqKlByb2dub3N0aWMgUm9sZSBvZiBIaWdoLUdyYWRlIFR1bW9yIEJ1ZGRpbmcgaW4gUGFuY3JlYXRpYyBEdWN0YWwgQWRlbm9jYXJjaW5vbWE6IEEgU3lzdGVtYXRpYyBSZXZpZXcgYW5kIE1ldGEtQW5hbHlzaXMgd2l0aCBhIEZvY3VzIG9uIEVwaXRoZWxpYWwgdG8gTWVzZW5jaHltYWwgVHJhbnNpdGlvbioqCgpodHRwczovL3d3dy5tZHBpLmNvbS8yMDcyLTY2OTQvMTEvMS8xMTMKCgotLS0KCi0gKipFenJpbiBwcm9tb3RlcyBzdGVtIGNlbGwgcHJvcGVydGllcyBpbiBwYW5jcmVhdGljIGR1Y3RhbCBhZGVub2NhcmNpbm9tYSoqCgpodHRwOi8vbWNyLmFhY3Jqb3VybmFscy5vcmcvY29udGVudC9lYXJseS8yMDE5LzAxLzE3LzE1NDEtNzc4Ni5NQ1ItMTgtMDM2Ny5hYnN0cmFjdAoKCgoKLS0tCgotICoqRXhvc29tZXMgaGFyYm9yIEIgY2VsbCB0YXJnZXRzIGluIHBhbmNyZWF0aWMgYWRlbm9jYXJjaW5vbWEgYW5kIGV4ZXJ0IGRlY295IGZ1bmN0aW9uIGFnYWluc3QgY29tcGxlbWVudC1tZWRpYXRlZCBjeXRvdG94aWNpdHkqKgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDE0NjctMDE4LTA4MTA5LTYKCgotLS0KCi0gKipJbW11bm90aGVyYXB5IGluIHBhbmNyZWF0aWMgY2FuY2VyOiBuZXcgaG9wZSBvciBtaXNzaW9uIGltcG9zc2libGU/KioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzAzMDQzODM1MTkzMDAxMzgKCgotLS0KCi0gKipNaWNyb3Zlc3NlbCBEZW5zaXR5IGFuZCBJbXBhY3Qgb2YgQW5naW9nZW5lc2lzIG9uIFN1cnZpdmFsIG9mIFJlc2VjdGVkIFBhbmNyZWF0aWMgQ2FuY2VyIFBhdGllbnRzIEEgU3lzdGVtYXRpYyBSZXZpZXcgYW5kIE1ldGEtYW5hbHlzaXMqKgoKCmh0dHBzOi8vam91cm5hbHMubHd3LmNvbS9wYW5jcmVhc2pvdXJuYWwvQWJzdHJhY3QvcHVibGlzaGFoZWFkL01pY3JvdmVzc2VsX0RlbnNpdHlfYW5kX0ltcGFjdF9vZl9Bbmdpb2dlbmVzaXNfb24uOTg0ODEuYXNweAoKCi0tLQoKLSAqKlJFUjEgZW5oYW5jZXMgY2FyY2lub2dlbmVzaXMgYW5kIHN0ZW1uZXNzIG9mIHBhbmNyZWF0aWMgY2FuY2VyIHVuZGVyIGh5cG94aWMgZW52aXJvbm1lbnQqKgoKaHR0cHM6Ly9qZWNjci5iaW9tZWRjZW50cmFsLmNvbS9hcnRpY2xlcy8xMC4xMTg2L3MxMzA0Ni0wMTgtMDk4Ni14CgotLS0KCgotICoqU3Vydml2YWxzIG9mIHBhdGllbnRzIHdpdGggc3VyZ2ljYWxseSB0cmVhdGVkIGFuZCBIaWdo4oCQZ3JhZGUgcGFuY3JlYXRpYyBuZXVyb2VuZG9jcmluZSBjYXJjaW5vbWFzOiBBIGNvbXBhcmF0aXZlIHN0dWR5IGJldHdlZW4gdHdvIEFtZXJpY2FuIEpvaW50IENvbW1pdHRlZSBvbiBDYW5jZXIgOHRoIHR1bW9yLW5vZGUtbWV0YXN0YXNpcyBzdGFnaW5nIHN5c3RlbXMqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDc0ODc5ODMxOTMwMDEwMQoKLS0tCgoKLSAqKlBhbmNyZWF0aWMgQ3lzdGljIExlc2lvbnMgaW4gQ2FzZXMgb2YgQXV0b2ltbXVuZSBQYW5jcmVhdGl0aXMuKioKCmh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLzMwNjQwMjMyCgoKCi0tLQoKLSAqKkhvdyBDYW4gV2UgUHJhY3RpY2FsbHkgSW1wbGVtZW50IFNjcmVlbmluZyBmb3IgSW50cmFkdWN0YWwgUGFwaWxsYXJ5IE11Y2lub3VzIE5lb3BsYXNtIG9mIHRoZSBQYW5jcmVhcyBhcyB0aGUgTWFpbiBGb2N1cyBmb3IgRWFybHkgRGV0ZWN0aW9uIG9mIFBhbmNyZWF0aWMgQWRlbm9jYXJjaW5vbWE/KioKCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8zMDY0MDIyNwoKLS0tCgotICoqQ3l0b2xvZ2ljIEFuYWx5c2lzIG9mIFBhbmNyZWF0aWMgSnVpY2UgSW5jcmVhc2VzIFNwZWNpZmljaXR5IG9mIERldGVjdGlvbiBvZiBNYWxpZ25hbnQgSVBNTiDigJMgQSBTeXN0ZW1hdGljIFJldmlldyoqCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MxNTQyMzU2NTE5MzAwMDcyCgoKLS0tCgotICoqVW5kaWZmZXJlbnRpYXRlZCBjYXJjaW5vbWEgd2l0aCBvc3Rlb2NsYXN0LWxpa2UgZ2lhbnQgY2VsbHMgb2YgdGhlIHBhbmNyZWFzIGFyaXNpbmcgZnJvbSBhbiBpbnRyYWR1Y3RhbCBwYXBpbGxhcnkgbXVjaW5vdXMgbmVvcGxhc20qKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMjIxNDMzMDAxODMwMTU5NwoKCgotLS0KCi0gKipNdXRhdGlvbiBhbmFseXNpcyBieSBkZWVwIHNlcXVlbmNpbmcgb2YgcGFuY3JlYXRpYyBqdWljZSBmcm9tIHBhdGllbnRzIHdpdGggcGFuY3JlYXRpYyBkdWN0YWwgYWRlbm9jYXJjaW5vbWEqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjExODYvczEyODg1LTAxOC01MTk1LTcKCgoKLS0tCgotICoqQ0Q3MyBleHByZXNzaW9uIGluIG5vcm1hbCBhbmQgcGF0aG9sb2dpY2FsIGh1bWFuIGhlcGF0b2JpbGlvcGFuY3JlYXRpYyB0aXNzdWVzKioKCmh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vYXJ0aWNsZS8xMC4xMDA3L3MwMDI2Mi0wMTgtMjI5MC0xCgotLS0KCi0gKipEaWFnbm9zdGljIFlpZWxkIEZyb20gU2NyZWVuaW5nIEFzeW1wdG9tYXRpYyBJbmRpdmlkdWFscyBhdCBIaWdoIFJpc2sgZm9yIFBhbmNyZWF0aWMgQ2FuY2VyOiBBIE1ldGEtYW5hbHlzaXMgb2YgQ29ob3J0IFN0dWRpZXMqKgoKaHR0cHM6Ly93d3cuY2doam91cm5hbC5vcmcvYXJ0aWNsZS9TMTU0Mi0zNTY1KDE4KTMwNDk4LTEvZnVsbHRleHQKCgotLS0KCi0gKipFeHByZXNzaW9uIG9mIGVzdHJvZ2VuIHJlY2VwdG9yIGJldGEgaXNvZm9ybXMgaW4gcGFuY3JlYXRpYyBhZGVub2NhcmNpbm9tYSoqCgpodHRwOi8vd3d3Lm9uY290YXJnZXQuY29tL2luZGV4LnBocD9qb3VybmFsPW9uY290YXJnZXQmcGFnZT1hcnRpY2xlJm9wPXZpZXcmcGF0aCU1QiU1RD0yNjUwMwoKLS0tCgoKLSAqKkNsaW5pY2FsIHNpZ25pZmljYW5jZSBvZiByZXZpc2VkIG1pY3Jvc2NvcGljIHBvc2l0aXZlIHJlc2VjdGlvbiBtYXJnaW4gc3RhdHVzIGluIGR1Y3RhbCBhZGVub2NhcmNpbm9tYSBvZiBwYW5jcmVhdGljIGhlYWQqKgoKaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMzAwNjkxNDFfQ2xpbmljYWxfc2lnbmlmaWNhbmNlX29mX3JldmlzZWRfbWljcm9zY29waWNfcG9zaXRpdmVfcmVzZWN0aW9uX21hcmdpbl9zdGF0dXNfaW5fZHVjdGFsX2FkZW5vY2FyY2lub21hX29mX3BhbmNyZWF0aWNfaGVhZAoKLS0tCgotICoqUGFuY3JlYXRpYyBDeXN0czogU2luaXN0ZXIgRmluZGluZ3Mgb3IgSW5jaWRlbnRhbG9tYXM/KioKCmh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHVibGljYXRpb24vMzMwMDQyNzAxX1BhbmNyZWF0aWNfQ3lzdHNfU2luaXN0ZXJfRmluZGluZ3Nfb3JfSW5jaWRlbnRhbG9tYXMKCgoKCi0tLQoKLSAqKkNyb3NzdGFsayBiZXR3ZWVuIHRoZSBUdW1vciBNaWNyb2Vudmlyb25tZW50IGFuZCBJbW11bmUgU3lzdGVtIGluIFBhbmNyZWF0aWMgRHVjdGFsIEFkZW5vY2FyY2lub21hOiBQb3RlbnRpYWwgVGFyZ2V0cyBmb3IgTmV3IFRoZXJhcGV1dGljIEFwcHJvYWNoZXMqKgoKaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMjk3ODE1NDRfQ3Jvc3N0YWxrX2JldHdlZW5fdGhlX1R1bW9yX01pY3JvZW52aXJvbm1lbnRfYW5kX0ltbXVuZV9TeXN0ZW1faW5fUGFuY3JlYXRpY19EdWN0YWxfQWRlbm9jYXJjaW5vbWFfUG90ZW50aWFsX1RhcmdldHNfZm9yX05ld19UaGVyYXBldXRpY19BcHByb2FjaGVzCgoKLS0tCgotICoqT25jb2dlbmljIEtSQVMgc3VwcG9ydHMgcGFuY3JlYXRpYyBjYW5jZXIgdGhyb3VnaCByZWd1bGF0aW9uIG9mIG51Y2xlb3RpZGUgc3ludGhlc2lzKioKCmh0dHBzOi8vd3d3Lm5hdHVyZS5jb20vYXJ0aWNsZXMvczQxNDY3LTAxOC0wNzQ3Mi04CgotLS0KCgoKCi0gKipTdWJ0eXBpbmcgb2YgaW50cmFkdWN0YWwgcGFwaWxsYXJ5IG11Y2lub3VzIG5lb3BsYXNtcyDigJMgcGl0ZmFsbHMgb2YgTVVDMSBpbW11bm9oaXN0b2NoZW1pc3RyeSoqCgoKaHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvYWJzLzEwLjExMTEvYXBtLjEyOTAwCgoKCgotLS0KCi0gKipEZWx0YU5wNjMtZGVwZW5kZW50IHN1cGVyIGVuaGFuY2VycyBkZWZpbmUgbW9sZWN1bGFyIGlkZW50aXR5IGluIHBhbmNyZWF0aWMgY2FuY2VyIGJ5IGFuIGludGVyY29ubmVjdGVkIHRyYW5zY3JpcHRpb24gZmFjdG9yIG5ldHdvcmsqKgoKaHR0cHM6Ly93d3cucG5hcy5vcmcvY29udGVudC9lYXJseS8yMDE4LzEyLzExLzE4MTI5MTUxMTYuc2hvcnQKCgoKCi0tLQoKCi0gKipTaWxlbmNpbmcgb2YgTVVDMjAgc3VwcHJlc3NlcyB0aGUgbWFsaWduYW50IGNoYXJhY3RlciBvZiBwYW5jcmVhdGljIGR1Y3RhbCBhZGVub2NhcmNpbm9tYSBjZWxscyB0aHJvdWdoIGluaGliaXRpb24gb2YgdGhlIEhHRi9NRVQgcGF0aHdheSoqCgoKT25jb2dlbmUgdm9sdW1lIDM3LCBwYWdlcyA2MDQx4oCTNjA1MyAoMjAxOCkgCgpodHRwczovL3d3dy5uYXR1cmUuY29tL2FydGljbGVzL3M0MTM4OC0wMTgtMDQwMy0wCgoKLS0tCgotICoqQ29tYmF0aW5nIHBhbmNyZWF0aWMgY2FuY2VyIHdpdGggUEkzSyBwYXRod2F5IGluaGliaXRvcnMgaW4gdGhlIGVyYSBvZiBwZXJzb25hbGlzZWQgbWVkaWNpbmUqKgoKCmh0dHBzOi8vZ3V0LmJtai5jb20vY29udGVudC9lYXJseS8yMDE4LzExLzA1L2d1dGpubC0yMDE4LTMxNjgyMgoKCgotLS0KCi0gKipUaGUgcm9sZSBvZiBHTEktU09YMiBzaWduYWxpbmcgYXhpcyBmb3IgZ2VtY2l0YWJpbmUgcmVzaXN0YW5jZSBpbiBwYW5jcmVhdGljIGNhbmNlcioqCgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDEzODgtMDE4LTA1NTMtMAoKCi0tLQoKLSAqKlBJTjEgbWFpbnRhaW5zIHJlZG94IGJhbGFuY2UgdmlhIHRoZSBjLU15Yy9OUkYyIGF4aXMgdG8gY291bnRlcmFjdCBLcmFzLWluZHVjZWQgbWl0b2Nob25kcmlhbCByZXNwaXJhdG9yeSBpbmp1cnkgaW4gcGFuY3JlYXRpYyBjYW5jZXIgY2VsbHMqKgoKCmh0dHA6Ly9jYW5jZXJyZXMuYWFjcmpvdXJuYWxzLm9yZy9jb250ZW50L2NhbnJlcy9lYXJseS8yMDE4LzEwLzI0LzAwMDgtNTQ3Mi5DQU4tMTgtMTk2OC5mdWxsLnBkZgoKCi0tLQogICAgCgotICoqRFlSSzFBIG1vZHVsYXRlcyBjLU1FVCBpbiBwYW5jcmVhdGljIGR1Y3RhbCBhZGVub2NhcmNpbm9tYSB0byBkcml2ZSB0dW1vdXIgZ3Jvd3RoKioKICAgIApodHRwczovL2d1dC5ibWouY29tL2NvbnRlbnQvZWFybHkvMjAxOC8xMC8yMC9ndXRqbmwtMjAxOC0zMTYxMjgKCgotLS0KCi0gKipBREFNMTIgaXMgYSBjaXJjdWxhdGluZyBtYXJrZXIgZm9yIHN0cm9tYWwgYWN0aXZhdGlvbiBpbiBwYW5jcmVhdGljIGNhbmNlciBhbmQgcHJlZGljdHMgcmVzcG9uc2UgdG8gY2hlbW90aGVyYXB5KioKCmh0dHBzOi8vd3d3Lm5hdHVyZS5jb20vYXJ0aWNsZXMvczQxMzg5LTAxOC0wMDk2LTkKCi0tLQoKLSAqKk5lb2VwaXRvcGUgdGFyZ2V0cyBvZiB0dW1vdXItaW5maWx0cmF0aW5nIGx5bXBob2N5dGVzIGZyb20gcGF0aWVudHMgd2l0aCBwYW5jcmVhdGljIGNhbmNlcioqCgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDE0MTYtMDE4LTAyNjItegoKCi0tLQoKCgotICoqUGFuY3JlYXRpYyBkdWN0YWwgYWRlbm9jYXJjaW5vbWEgaGFyYm9yaW5nIG1pY3Jvc2F0ZWxsaXRlIGluc3RhYmlsaXR5IC8gRE5BIG1pc21hdGNoIHJlcGFpciBkZWZpY2llbmN5LiBUb3dhcmRzIHBlcnNvbmFsaXplZCBtZWRpY2luZS4qKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDk2MDc0MDQxODMwMTI0NQoKCi0tLQoKLSAqKlBhbmNyZWF0aWMgY2FuY2VyIGFyaXNpbmcgaW4gdGhlIHJlbW5hbnQgcGFuY3JlYXMgaXMgbm90IGFsd2F5cyBhIHJlbGFwc2Ugb2YgdGhlIHByZWNlZGluZyBwcmltYXJ5KioKCmh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHVibGljYXRpb24vMzI5MTIyNzQxX1BhbmNyZWF0aWNfY2FuY2VyX2FyaXNpbmdfaW5fdGhlX3JlbW5hbnRfcGFuY3JlYXNfaXNfbm90X2Fsd2F5c19hX3JlbGFwc2Vfb2ZfdGhlX3ByZWNlZGluZ19wcmltYXJ5CgotLS0KCi0gKipVbmRpZmZlcmVudGlhdGVkIGNhcmNpbm9tYSB3aXRoIG9zdGVvY2xhc3QtbGlrZSBnaWFudCBjZWxscyBvZiBwYW5jcmVhcyBBIGNhc2UgcmVwb3J0IHdpdGggcmV2aWV3IG9mIHRoZSBjb21wdXRlZCB0b21vZ3JhcGh5IGZpbmRpbmdzKioKCmh0dHBzOi8vam91cm5hbHMubHd3LmNvbS9tZC1qb3VybmFsL0Z1bGx0ZXh0LzIwMTgvMTEzMDAvVW5kaWZmZXJlbnRpYXRlZF9jYXJjaW5vbWFfd2l0aF9vc3Rlb2NsYXN0X2xpa2UuMTAwLmFzcHgKCgotLS0KCgotICoqQ2xpbmljb+KAkHBhdGhvbG9naWNhbCBmZWF0dXJlcyBhbmQgc3Vydml2YWwgb2YgcGF0aWVudHMgd2l0aCBtYWxpZ25hbnQgZXhvY3JpbmUgcGFuY3JlYXRpYyBuZW9wbGFzbXM6IFRoZSBBQyBDYW1hcmdvIENhbmNlciBDZW50ZXIgZXhwZXJpZW5jZSoqCgpodHRwczovL29ubGluZWxpYnJhcnkud2lsZXkuY29tL2RvaS9hYnMvMTAuMTAwMi9qc28uMjUzMTIKCgoKCi0tLQoKLSAqKlJvbGUgb2YgYWRqdXZhbnQgdGhlcmFweSBpbiByZXNlY3RlZCBzdGFnZSBJQSBzdWJjZW50aW1ldGVyIChUMWEvVDFiKSBwYW5jcmVhdGljIGNhbmNlcjogQWRqdXZhbnQgdGhlcmFweSBmb3Igc3ViY2VudGltZXRlciBQREFDKioKCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMyOTA3OTMyN19Sb2xlX29mX2FkanV2YW50X3RoZXJhcHlfaW5fcmVzZWN0ZWRfc3RhZ2VfSUFfc3ViY2VudGltZXRlcl9UMWFUMWJfcGFuY3JlYXRpY19jYW5jZXJfQWRqdXZhbnRfdGhlcmFweV9mb3Jfc3ViY2VudGltZXRlcl9QREFDCgoKLS0tCgotICoqSW50ZXJuYXRpb25hbCBWYWxpZGF0aW9uIG9mIHRoZSBFaWdodGggRWRpdGlvbiBvZiB0aGUgQW1lcmljYW4gSm9pbnQgQ29tbWl0dGVlIG9uIENhbmNlciAoQUpDQykgVE5NIFN0YWdpbmcgU3lzdGVtIGluIFBhdGllbnRzIFdpdGggUmVzZWN0ZWQgUGFuY3JlYXRpYyBDYW5jZXIqKgoKW2xpbmtdKGh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHJvZmlsZS9NYXR0ZW9fRGVfUGFzdGVuYS9wdWJsaWNhdGlvbi8zMjgwNTMzNjFfSW50ZXJuYXRpb25hbF9WYWxpZGF0aW9uX29mX3RoZV9FaWdodGhfRWRpdGlvbl9vZl90aGVfQW1lcmljYW5fSm9pbnRfQ29tbWl0dGVlX29uX0NhbmNlcl9BSkNDX1ROTV9TdGFnaW5nX1N5c3RlbV9pbl9QYXRpZW50c19XaXRoX1Jlc2VjdGVkX1BhbmNyZWF0aWNfQ2FuY2VyL2xpbmtzLzViY2ExMjVmYTZmZGNjMDNjNzk2MDE3NC9JbnRlcm5hdGlvbmFsLVZhbGlkYXRpb24tb2YtdGhlLUVpZ2h0aC1FZGl0aW9uLW9mLXRoZS1BbWVyaWNhbi1Kb2ludC1Db21taXR0ZWUtb24tQ2FuY2VyLUFKQ0MtVE5NLVN0YWdpbmctU3lzdGVtLWluLVBhdGllbnRzLVdpdGgtUmVzZWN0ZWQtUGFuY3JlYXRpYy1DYW5jZXIucGRmKQoKCgotLS0KCi0gKipQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSBhbmQgSXRzIFByZWN1cnNvciBMZXNpb25zOiBIaXN0b3BhdGhvbG9neSwgQ3l0b3BhdGhvbG9neSwgYW5kIE1vbGVjdWxhciBQYXRob2xvZ3kqKgoKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzAwMDI5NDQwMTgzMDE1MTIKCgotLS0KCgotICoqRGlhZ25vc3RpYyBhbmQgUHJvZ25vc3RpYyBJbXBhY3Qgb2YgTmV1dHJvcGhpbC10by1MeW1waG9jeXRlIFJhdGlvIGZvciBJbnRyYWR1Y3RhbCBQYXBpbGxhcnkgTXVjaW5vdXMgTmVvcGxhc21zIG9mIHRoZSBQYW5jcmVhcyBXaXRoIEhpZ2gtR3JhZGUgRHlzcGxhc2lhIGFuZCBBc3NvY2lhdGVkIEludmFzaXZlIENhcmNpbm9tYSoqCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMyOTMwMjY2MV9EaWFnbm9zdGljX2FuZF9Qcm9nbm9zdGljX0ltcGFjdF9vZl9OZXV0cm9waGlsLXRvLUx5bXBob2N5dGVfUmF0aW9fZm9yX0ludHJhZHVjdGFsX1BhcGlsbGFyeV9NdWNpbm91c19OZW9wbGFzbXNfb2ZfdGhlX1BhbmNyZWFzX1dpdGhfSGlnaC1HcmFkZV9EeXNwbGFzaWFfYW5kX0Fzc29jaWF0ZWRfSW52YXNpdmVfQ2FyY2lub21hCgoKLS0tCgotICoqVGhlIGVmZmljYWN5IGFuZCBzYWZldHkgb2YgZW5kb3Njb3BpYyB1bHRyYXNvdW5kLWd1aWRlZCBhYmxhdGlvbiBvZiBwYW5jcmVhdGljIGN5c3RzIHdpdGggYWxjb2hvbCBhbmQgcGFjbGl0YXhlbCBhIHN5c3RlbWF0aWMgcmV2aWV3KioKCgpodHRwczovL2pvdXJuYWxzLmx3dy5jb20vZXVyb2pnaC9BYnN0cmFjdC8yMDE5LzAxMDAwL1RoZV9lZmZpY2FjeV9hbmRfc2FmZXR5X29mX2VuZG9zY29waWMuMS5hc3B4CgoKLS0tCgotICoqSW50cmFkdWN0YWwgcGFwaWxsYXJ5IG11Y2lub3VzIG5lb3BsYXNtIGNvbXBsaWNhdGVkIGJ5IGEgZ2FzdHJvcGFuY3JlYXRpYyBmaXN0dWxhKioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzE5MzAwNDMzMTgzMDM3M1gKCi0tLQoKCi0gKipSaXNrIG9mIGFkdmFuY2VkIGxlc2lvbnMgaW4gcGF0aWVudHMgd2l0aCBicmFuY2gtZHVjdCBJUE1OIGFuZCByZWxhdGl2ZSBpbmRpY2F0aW9ucyBmb3Igc3VyZ2VyeSBhY2NvcmRpbmcgdG8gRXVyb3BlYW4gZXZpZGVuY2UtYmFzZWQgZ3VpZGVsaW5lcyoqCgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMTU5MDg2NTgxODMxMjY3MgoKCgotLS0KCgoKLSAqKlRoZSBQYXJhZG94aWNhbCBXZWIgb2YgUGFuY3JlYXRpYyBDYW5jZXIgVHVtb3IgTWljcm9lbnZpcm9ubWVudCoqCgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDAwMjk0NDAxODMwMTU2MQoKCgoKLS0tCgoKLSAqKkltbXVub3N1cHByZXNzaXZlIM6yaWctaDMgbGlua3MgdHVtb3VyIHN0cm9tYSBhbmQgZHlzZnVuY3Rpb25hbCBUIGNlbGxzIGluIHBhbmNyZWF0aWMgY2FuY2VyKioKCmh0dHBzOi8vZ3V0LmJtai5jb20vY29udGVudC9lYXJseS8yMDE4LzEyLzA3L2d1dGpubC0yMDE4LTMxNzczNQoKCi0tLQoKCi0gKipQcmltb3JkaWFsIGdlcm0gY2VsbHMgYXMgYSBwb3RlbnRpYWwgc2hhcmVkIGNlbGwgb2Ygb3JpZ2luIGZvciBtdWNpbm91cyBjeXN0aWMgbmVvcGxhc21zIG9mIHRoZSBwYW5jcmVhcyBhbmQgbXVjaW5vdXMgb3ZhcmlhbiB0dW1vcnMqKgoKaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMjc3NTc0MTNfUHJpbW9yZGlhbF9nZXJtX2NlbGxzX2FzX2FfcG90ZW50aWFsX3NoYXJlZF9jZWxsX29mX29yaWdpbl9mb3JfbXVjaW5vdXNfY3lzdGljX25lb3BsYXNtc19vZl90aGVfcGFuY3JlYXNfYW5kX211Y2lub3VzX292YXJpYW5fdHVtb3JzCgoKLS0tCgoKCi0gKipQYW5jcmVhdGljIENob3Jpc3RvbWEgaW4gYSBDYW5pbmUgR2FsbGJsYWRkZXIqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDAyMTk5NzUxODMwMjAyMAoKCi0tLQoKCgoKLSAqKlR1bWVmYWN0aXZlIEluZmxhbW1hdG9yeSBEaXNlYXNlcyBvZiB0aGUgUGFuY3JlYXMqKgoKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzAwMDI5NDQwMTgzMDIwMjUKCgoKLS0tCgotICoqUGFuY3JlYXRpYyBjeXN0aWMgdHVtb3JzIGFuIHVwZGF0ZSoqCgpodHRwczovL2pvdXJuYWxzLmx3dy5jb20vanBhbmNyZWF0b2xvZ3kvRnVsbHRleHQvMjAxOC8xMjAwMC9QYW5jcmVhdGljX2N5c3RpY190dW1vcnNfX2FuX3VwZGF0ZS4yLmFzcHgKCgotLS0KCi0gKipDcm9zc3RhbGsgYmV0d2VlbiB0aGUgVHVtb3IgTWljcm9lbnZpcm9ubWVudCBhbmQgSW1tdW5lIFN5c3RlbSBpbiBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYTogUG90ZW50aWFsIFRhcmdldHMgZm9yIE5ldyBUaGVyYXBldXRpYyBBcHByb2FjaGVzKioKCmh0dHBzOi8vd3d3LmhpbmRhd2kuY29tL2pvdXJuYWxzL2dycC8yMDE4Lzc1MzA2MTkvCgotLS0KCi0gKipQeWxvcmljIEdsYW5kIEFkZW5vbWEgb2YgR2FsbGJsYWRkZXI6IEEgUmV2aWV3IG9mIERpYWdub3NpcyBhbmQgTWFuYWdlbWVudCoqCgpodHRwczovL3d3dy5oaW5kYXdpLmNvbS9qb3VybmFscy9hbWVkLzIwMTgvNzUzOTY5NC8KCi0tLQoKLSAqKkxvc3Mgb2YgS0RNNkEgY2hhcmFjdGVyaXplcyBhIHBvb3IgcHJvZ25vc3RpYyBzdWJ0eXBlIG9mIGh1bWFuIHBhbmNyZWF0aWMgY2FuY2VyIGFuZCBwb3RlbnRpYXRlcyBIREFDIGluaGliaXRvciBsZXRoYWxpdHkqKgoKaHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvYWJzLzEwLjEwMDIvaWpjLjMyMDcyCgotLS0KCi0gKipUaGUgZHVhbCByb2xlIG9mIEhNR0IxIGluIHBhbmNyZWF0aWMgY2FuY2VyKioKCmh0dHBzOi8vam91cm5hbHMubHd3LmNvbS9qcGFuY3JlYXRvbG9neS9GdWxsdGV4dC8yMDE4LzEyMDAwL1RoZV9kdWFsX3JvbGVfb2ZfSE1HQjFfaW5fcGFuY3JlYXRpY19jYW5jZXIuMy5hc3B4CgotLS0KCi0gKipBIHN5c3RlbWF0aWMgYXNzZXNzbWVudCBvZiBzdGF0aXN0aWNzLCByaXNrIGZhY3RvcnMsIGFuZCB1bmRlcmx5aW5nIGZlYXR1cmVzIGludm9sdmVkIGluIHBhbmNyZWF0aWMgY2FuY2VyKioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzE4Nzc3ODIxMTgzMDUxMDEKCgotLS0KCgotICoqQ3l0b3BhdGhvbG9naWNhbCByZXN1bHRzIG9mIGluaXRpYWwgZW5kb3Njb3BpYyB1bHRyYXNvdW5k4oCQZ3VpZGVkIGZpbmUgbmVlZGxlIGFzcGlyYXRpb24gZm9yIHByaW1hcnkgbWFzcyBhbmQgcHJvZ25vc2lzIGluIHBhbmNyZWF0aWMgY2FuY2VyIHBhdGllbnRzKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pLzEwLjExMTEvY3l0LjEyNjc1CgotLS0KCi0gKipBbmFseXNpcyBvZiBkeW5hbWljIG1vbGVjdWxhciBuZXR3b3JrcyBmb3IgcGFuY3JlYXRpYyBkdWN0YWwgYWRlbm9jYXJjaW5vbWEgcHJvZ3Jlc3Npb24qKgoKaHR0cHM6Ly9jYW5jZXJjaS5iaW9tZWRjZW50cmFsLmNvbS9hcnRpY2xlcy8xMC4xMTg2L3MxMjkzNS0wMTgtMDcxOC01CgotLS0KCgotICoqVXRpbGl6aW5nIGNlbGwgbGluZS1kZXJpdmVkIG9yZ2Fub2lkcyB0byBldmFsdWF0ZSB0aGUgZWZmaWNhY3kgb2YgYSAgbm92ZWwgTElGUi1pbmhpYml0b3IsIEVDMzU5IGluIHRhcmdldGluZyBwYW5jcmVhdGljIHR1bW9yIHN0cm9tYSoqCgpodHRwOi8vd3d3LmltcGFjdGpvdXJuYWxzLmNvbS9HZW5lcyZDYW5jZXIvZmlsZXMvcGFwZXJzLzEvMTg0LzE4NC5wZGYKCgotLS0KCi0gKipDYW5jZXItYXNzb2NpYXRlZCBhY2luYXItdG8tZHVjdGFsIG1ldGFwbGFzaWEgd2l0aGluIHRoZSBpbnZhc2l2ZSBmcm9udCBvZiBwYW5jcmVhdGljIGNhbmNlciBjb250cmlidXRlcyB0byBsb2NhbCBpbnZhc2lvbioqCgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDMwNDM4MzUxODMwNzIwMQoKCi0tLQoKLSAqKkV4cHJlc3Npb24gb2YgZXN0cm9nZW4gcmVjZXB0b3IgYmV0YSBpc29mb3JtcyBpbiBwYW5jcmVhdGljIGFkZW5vY2FyY2lub21hKioKCltEZWNlbWJlciAyMDE4T25jb3RhcmdldCA5KDEwMikgRE9JOiAxMC4xODYzMi9vbmNvdGFyZ2V0LjI2NTAzXShodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMyOTk4MDE3Ml9FeHByZXNzaW9uX29mX2VzdHJvZ2VuX3JlY2VwdG9yX2JldGFfaXNvZm9ybXNfaW5fcGFuY3JlYXRpY19hZGVub2NhcmNpbm9tYSkKCgotLS0KCi0gKipNZXNlbmNoeW1hbCBjaG9uZHJvc2FyY29tYSBtZXRhc3Rhc2lzaW5nIHRvIHRoZSBwYW5jcmVhcyoqCgoKaHR0cHM6Ly9jYXNlcmVwb3J0cy5ibWouY29tL2NvbnRlbnQvMTEvMS9lMjI2MzY5CgotLS0KCi0gKipQSUszQ0EgaW4gS3JhcyBHMTJEL1RycDUzIFIxNzJIIFR1bW9yIENlbGxzIFByb21vdGVzIEltbXVuZSBFdmFzaW9uIGJ5IExpbWl0aW5nIEluZmlsdHJhdGlvbiBvZiBUIENlbGxzIGluIGEgTW9kZWwgb2YgUGFuY3JlYXRpYyBDYW5jZXIqKgoKaHR0cHM6Ly93d3cuYmlvcnhpdi5vcmcvY29udGVudC9iaW9yeGl2L2Vhcmx5LzIwMTkvMDEvMTUvNTIxODMxLmZ1bGwucGRmCgoKLSAqKkFwcHJvcHJpYXRlbmVzcyBvZiBwYW5jcmVhdGljIHJlc2VjdGlvbiBpbiBoaWdoLXJpc2sgaW5kaXZpZHVhbHMgZm9yIGZhbWlsaWFsIHBhbmNyZWF0aWMgZHVjdGFsIGFkZW5vY2FyY2lub21hOiBhIHBhdGllbnQtbGV2ZWwgbWV0YS1hbmFseXNpcyBhbmQgcHJvcG9zaXRpb24gb2YgdGhlIEJlYXVqb24gc2NvcmUqKgoKaHR0cHM6Ly9qb3VybmFscy5zYWdlcHViLmNvbS9kb2kvcGRmLzEwLjExNzcvMjA1MDY0MDYxODgyNDkxMAoKLS0tCgotICoqUGFuY3JlYXRpYyBjYW5jZXIgbWljcm9lbnZpcm9ubWVudDogYSBjdXJyZW50IGRpbGVtbWEqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjExODYvczQwMTY5LTAxOS0wMjIxLTEKCi0tLQoKLSAqKkFyZSBCUkNBMSBhbmQgQlJDQTIgZ2VuZSBtdXRhdGlvbiBwYXRpZW50cyB1bmRlcnNjcmVlbmVkIGZvciBwYW5jcmVhdGljIGFkZW5vY2FyY2lub21hPyoqCgpodHRwczovL29ubGluZWxpYnJhcnkud2lsZXkuY29tL2RvaS8xMC4xMDAyL2pzby4yNTM3NgoKLS0tCgotICoqS3Jhc0cxMkQgbXV0YXRpb24gY29udHJpYnV0ZXMgdG8gcmVndWxhdG9yeSBUIGNlbGwgY29udmVyc2lvbiB0aHJvdWdoIGFjdGl2YXRpb24gb2YgdGhlIE1FSy9FUksgcGF0aHdheSBpbiBwYW5jcmVhdGljIGNhbmNlcioqCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMzA0MzgzNTE5MzAwMjU0CgoKLS0tCgotICoqRGV0ZXJtaW5pbmcgdGhlIG9wdGltYWwgbnVtYmVyIG9mIGV4YW1pbmVkIGx5bXBoIG5vZGVzIGZvciBhY2N1cmF0ZSBzdGFnaW5nIG9mIHBhbmNyZWF0aWMgY2FuY2VyOiBBbiBhbmFseXNpcyB1c2luZyB0aGUgbm9kYWwgc3RhZ2luZyBzY29yZSBtb2RlbCoqCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwNzQ4Nzk4MzE5MzAwNDExCgotLS0KCi0gKipHZW5ldGljcyBvZiBGYW1pbGlhbCBhbmQgU3BvcmFkaWMgUGFuY3JlYXRpYyBDYW5jZXIqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDAxNjUwODUxOTMwMDU2MwoKLS0tCgoKLSAqKkx5bXBob2VwaXRoZWxpYWwgY3lzdCBvZiB0aGUgcGFuY3JlYXM6IEEgY2FzZSByZXBvcnQgYW5kIHN1bW1hcnkgb2YgaW1hZ2luZyBmZWF0dXJlcyBvZiBwYW5jcmVhdGljIGN5c3RzKioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzIyMTAyNjEyMTkzMDAzMzEKCi0tLQoKYGBge3Igenp6IDMwNzAyNjI4LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDcwMjYyOCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDcwMjYyOCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDcwMjYyOCA8LSBwYXN0ZTAoUE1JRF8zMDcwMjYyOCRqb3VybmFsLCcgJywgUE1JRF8zMDcwMjYyOCR5ZWFyLCAnICcsIFBNSURfMzA3MDI2MjgkbW9udGgsJzsnLCBQTUlEXzMwNzAyNjI4JHZvbHVtZSwnKCcsIFBNSURfMzA3MDI2MjgkbnVtYmVyLCcpOicsIFBNSURfMzA3MDI2MjgkcGFnZXMpCgpQdWJNZWRfMzA3MDI2MjggPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDcwMjYyOCRlcHJpbnQpCgpkb2lfMzA3MDI2MjggPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDcwMjYyOCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDcwMjYyOCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDcwMjYyOCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNzAyNjI4IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNzAyNjI4JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDcwMjYyOCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNzAyNjI4JHRpdGxlICwgIiBQTUlEOiAzMDcwMjYyOCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA3MDI2MjgkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDcwMjYyOGAqCgpgciBQdWJNZWRfMzA3MDI2MjhgCgpgciBhZGR0aGlzX2lubGluZV8zMDcwMjYyOGAKCmByIFBNSURfMzA3MDI2MjgkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDcwMjYyOGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDcwMjYyOGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNzAyNjI4YAoKPC9kZXRhaWxzPgoKLS0tCgotICoqRGV2ZWxvcG1lbnQgb2YgYSBDbGFzcyBQcmVkaWN0aW9uIE1vZGVsIHRvIERpc2NyaW1pbmF0ZSBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSBmcm9tIFBhbmNyZWF0aWMgTmV1cm9lbmRvY3JpbmUgVHVtb3IgYnkgTUFMREkgTWFzcyBTcGVjdHJvbWV0cnkgSW1hZ2luZyoqCgpodHRwczovL29ubGluZWxpYnJhcnkud2lsZXkuY29tL2RvaS9hYnMvMTAuMTAwMi9wcmNhLjIwMTgwMDA0NgoKLS0tCgotICoqQmFjayBDb3ZlcjogRGV2ZWxvcG1lbnQgb2YgYSBDbGFzcyBQcmVkaWN0aW9uIE1vZGVsIHRvIERpc2NyaW1pbmF0ZSBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSBmcm9tIFBhbmNyZWF0aWMgTmV1cm9lbmRvY3JpbmUgVHVtb3IgYnkgTUFMREkgTWFzcyBTcGVjdHJvbWV0cnkgSW1hZ2luZyoqCgpodHRwczovL29ubGluZWxpYnJhcnkud2lsZXkuY29tL2RvaS9hYnMvMTAuMTAwMi9wcmNhLjIwMTk3MDAxMwoKLS0tCgpgYGB7ciB6enogMzA3MTYzMjAsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNzE2MzIwIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNzE2MzIwJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNzE2MzIwIDwtIHBhc3RlMChQTUlEXzMwNzE2MzIwJGpvdXJuYWwsJyAnLCBQTUlEXzMwNzE2MzIwJHllYXIsICcgJywgUE1JRF8zMDcxNjMyMCRtb250aCwnOycsIFBNSURfMzA3MTYzMjAkdm9sdW1lLCcoJywgUE1JRF8zMDcxNjMyMCRudW1iZXIsJyk6JywgUE1JRF8zMDcxNjMyMCRwYWdlcykKClB1Yk1lZF8zMDcxNjMyMCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNzE2MzIwJGVwcmludCkKCmRvaV8zMDcxNjMyMCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNzE2MzIwJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNzE2MzIwIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNzE2MzIwJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA3MTYzMjAgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA3MTYzMjAkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNzE2MzIwIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA3MTYzMjAkdGl0bGUgLCAiIFBNSUQ6IDMwNzE2MzIwICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDcxNjMyMCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNzE2MzIwYCoKCmByIFB1Yk1lZF8zMDcxNjMyMGAKCmByIGFkZHRoaXNfaW5saW5lXzMwNzE2MzIwYAoKYHIgUE1JRF8zMDcxNjMyMCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNzE2MzIwYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNzE2MzIwYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA3MTYzMjBgCgo8L2RldGFpbHM+CgotLS0KCi0gKipHZW5vbWljIFByb2ZpbGluZyBpbiBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSBhbmQgYSBQYXRod2F5IHRvd2FyZHMgVGhlcmFweSBJbmRpdmlkdWFsaXphdGlvbjogQSBTY29waW5nIFJldmlldyoqCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMzA1NzM3MjE5MzAwNTE5CgotLS0KCi0gKipHZW5vbWUtd2lkZSBDUklTUFIgc2NyZWVuIHJldmVhbHMgUFNNQTYgdG8gYmUgYW4gZXNzZW50aWFsIGdlbmUgaW4gcGFuY3JlYXRpYyBjYW5jZXIgY2VsbHMqKgoKaHR0cHM6Ly9ibWNjYW5jZXIuYmlvbWVkY2VudHJhbC5jb20vYXJ0aWNsZXMvMTAuMTE4Ni9zMTI4ODUtMDE5LTU0NTUtMQoKLS0tCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKCgoKIyMjIEJpbGUgRHVjdHMKCgpHYWxsYmxhZGRlciBQb2x5cHM6IFJhcmUgTGVzaW9ucyBpbiBDaGlsZGhvb2QuCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8zMDg4OTEyMwoKTW9sZWN1bGFyIFBlcnR1cmJhdGlvbnMgaW4gQ2hvbGFuZ2lvY2FyY2lub21hOiBJcyBpdCBUaW1lIGZvciBQcmVjaXNpb24gTWVkaWNpbmU/CgpodHRwczovL29ubGluZWxpYnJhcnkud2lsZXkuY29tL2RvaS9hYnMvMTAuMTExMS9saXYuMTQwODUKCgpQcmVvcGVyYXRpdmUgZGlhZ25vc2lzIG9mIHdlbGwtZGlmZmVyZW50aWF0ZWQgbmV1cm9lbmRvY3JpbmUgdHVtb3IgaW4gY29tbW9uIGhlcGF0aWMgZHVjdCBieSBicnVzaCBjeXRvbG9neTogQSBjYXNlIHJlcG9ydC4KCmh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLzMwODg0MjAwCgotLS0KCk1BQ0MxIHByb21vdGVzIGFuZ2lvZ2VuZXNpcyBpbiBjaG9sYW5naW9jYXJjaW5vbWEgYnkgdXByZWd1bGF0aW5nIFZFR0ZBLgoKaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMzA4ODEwNDEKCgotLS0KCi0gKipUcmVuZHMgaW4gdGhlIEluY2lkZW5jZSwgVHJlYXRtZW50IGFuZCBPdXRjb21lcyBvZiBQYXRpZW50cyB3aXRoIEludHJhaGVwYXRpYyBDaG9sYW5naW9jYXJjaW5vbWEgaW4gdGhlIFVTQTogRmFjaWxpdHkgVHlwZSBpcyBBc3NvY2lhdGVkIHdpdGggTWFyZ2luIFN0YXR1cywgVXNlIG9mIEx5bXBoYWRlbmVjdG9teSBhbmQgT3ZlcmFsbCBTdXJ2aXZhbCoqCgpodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2FydGljbGUvMTAuMTAwNy9zMDAyNjgtMDE5LTA0OTY2LTQKCgotLS0KCi0gKipQcmVtYWxpZ25hbnQgTGVzaW9ucyBvZiB0aGUgQmlsaWFyeSBUcmFjdCoqCgpodHRwczovL3d3dy5zdXJnaWNhbC50aGVjbGluaWNzLmNvbS9hcnRpY2xlL1MwMDM5LTYxMDkoMTgpMzAxNzAtMS9hYnN0cmFjdAoKCi0tLQoKLSAqKkNob2xhbmdpb2xvY2VsbHVsYXIgQ2FyY2lub21hIFdpdGgg4oCcRHVjdGFsIFBsYXRlIE1hbGZvcm1hdGlvbuKAnSBQYXR0ZXJuIE1heSBCZSBDaGFyYWN0ZXJpemVkIGJ5IEFSSUQxQSBHZW5ldGljIEFsdGVyYXRpb25zKioKCmh0dHBzOi8vam91cm5hbHMubHd3LmNvbS9hanNwL0Fic3RyYWN0LzIwMTkvMDMwMDAvQ2hvbGFuZ2lvbG9jZWxsdWxhcl9DYXJjaW5vbWFfV2l0aF9fRHVjdGFsX1BsYXRlLjcuYXNweAoKLS0tCgpgYGB7ciB6enogMzA2OTM0NTEsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNjkzNDUxIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNjkzNDUxJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNjkzNDUxIDwtIHBhc3RlMChQTUlEXzMwNjkzNDUxJGpvdXJuYWwsJyAnLCBQTUlEXzMwNjkzNDUxJHllYXIsICcgJywgUE1JRF8zMDY5MzQ1MSRtb250aCwnOycsIFBNSURfMzA2OTM0NTEkdm9sdW1lLCcoJywgUE1JRF8zMDY5MzQ1MSRudW1iZXIsJyk6JywgUE1JRF8zMDY5MzQ1MSRwYWdlcykKClB1Yk1lZF8zMDY5MzQ1MSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNjkzNDUxJGVwcmludCkKCmRvaV8zMDY5MzQ1MSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNjkzNDUxJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNjkzNDUxIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNjkzNDUxJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA2OTM0NTEgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA2OTM0NTEkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNjkzNDUxIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA2OTM0NTEkdGl0bGUgLCAiIFBNSUQ6IDMwNjkzNDUxICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDY5MzQ1MSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNjkzNDUxYCoKCmByIFB1Yk1lZF8zMDY5MzQ1MWAKCmByIGFkZHRoaXNfaW5saW5lXzMwNjkzNDUxYAoKYHIgUE1JRF8zMDY5MzQ1MSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNjkzNDUxYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNjkzNDUxYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA2OTM0NTFgCgo8L2RldGFpbHM+CgotLS0KCi0gKipQcm9wb3NhbCBmb3IgYSBuZXcgY2xhc3NpZmljYXRpb24gZm9yIHBlcmloaWxhciBjaG9sYW5naW9jYXJjaW5vbWEgYmFzZWQgb24gdHVtb3VyIGRlcHRoKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMDAyL2Jqcy4xMTA2MwoKCi0tLQoKLSAqKkltcGFjdCBvZiBUdW1vdXIgQnVkZGluZyBHcmFkZSBpbiAzMTAgUGF0aWVudHMgV2hvIFVuZGVyd2VudCBTdXJnaWNhbCBSZXNlY3Rpb24gZm9yIEV4dHJhaGVwYXRpYyBDaG9sYW5naW9jYXJjaW5vbWEqKgoKaHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvYWJzLzEwLjExMTEvaGlzLjEzODI3P2FmPVIKCgotLS0KCi0gKipJbXBhY3Qgb2YgVHVtb3VyIEJ1ZGRpbmcgR3JhZGUgaW4gMzEwIFBhdGllbnRzIFdobyBVbmRlcndlbnQgU3VyZ2ljYWwgUmVzZWN0aW9uIGZvciBFeHRyYWhlcGF0aWMgQ2hvbGFuZ2lvY2FyY2lub21hKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMTExL2hpcy4xMzgyNz9hZj1SCgotLS0KCi0gKipJbXBhY3Qgb2YgVHVtb3IgTG9jYXRpb24gb24gUG9zdG9wZXJhdGl2ZSBPdXRjb21lIG9mIEludHJhZHVjdGFsIFBhcGlsbGFyeSBOZW9wbGFzbSBvZiB0aGUgQmlsZSBEdWN0KioKCmh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vYXJ0aWNsZS8xMC4xMDA3L3MwMDI2OC0wMTktMDQ5MTMtMwoKLS0tCgotICoqTXVjaW5vdXMgY3lzdGljIG5lb3BsYXNtIG9mIHRoZSBsaXZlciB3aXRoIGJpbGlhcnkgY29tbXVuaWNhdGlvbjogYW4gZXhjZXB0aW9uIHRvIHRoZSBjdXJyZW50IGNsYXNzaWZpY2F0aW9uKioKCmh0dHBzOi8vY2FzZXJlcG9ydHMuYm1qLmNvbS9jb250ZW50LzEyLzEvYmNyLTIwMTgtMjI3MDYzLmFic3RyYWN0CgoKLS0tCgotICoqT3V0Y29tZSBEZXRlcm1pbmluZyBGYWN0b3JzIG9mIEludHJhZHVjdGFsIFBhcGlsbGFyeSBOZW9wbGFzbSBvZiB0aGUgQmlsaWFyeSBUcmFjdCAoSVBOQinigJRhIFNpbmdsZSBDZW50ZXIgU3VydmV5IGFuZCBBbmFseXNpcyBvZiBDdXJyZW50IExpdGVyYXR1cmUqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEwMDcvczEyMDI5LTAxOC0wMDE5OS0xCgoKLS0tCgotICoqQW4gYXV0b3BzeSBjYXNlIG9mIHByaW1hcnkgZXh0cmFub2RhbCBOSy9UIGNlbGwgbHltcGhvbWEgKGV4dHJhbm9kYWwgTksvVC1jZWxsIGx5bXBob21hKSBvZiB0aGUgYmlsZSBkdWN0KioKCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMzMDA5NjExN19Bbl9hdXRvcHN5X2Nhc2Vfb2ZfcHJpbWFyeV9leHRyYW5vZGFsX05LVF9jZWxsX2x5bXBob21hX2V4dHJhbm9kYWxfTktULWNlbGxfbHltcGhvbWFfb2ZfdGhlX2JpbGVfZHVjdAoKCi0tLQoKCgotICoqSW50cmFkdWN0YWwgUGFwaWxsYXJ5IE5lb3BsYXNtIG9mIHRoZSBCaWxlIER1Y3Q6IEFzc2Vzc21lbnQgb2YgSW52YXNpdmUgQ2FyY2lub21hIGFuZCBMb25nLVRlcm0gT3V0Y29tZXMgdXNpbmcgTVJJKioKCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMyOTY2NDcyN19JbnRyYWR1Y3RhbF9QYXBpbGxhcnlfTmVvcGxhc21fb2ZfdGhlX0JpbGVfRHVjdF9Bc3Nlc3NtZW50X29mX0ludmFzaXZlX0NhcmNpbm9tYV9hbmRfTG9uZy1UZXJtX091dGNvbWVzX3VzaW5nX01SSQoKLS0tCgoKLSAqKkhldGVyb3RvcGljIGNob25kcm9pZCB0aXNzdWUgb2YgdGhlIG1haW4gYmlsZSBkdWN0IG1pbWlja2luZyBLbGF0c2tpbiB0dW1vcjogY2FzZSByZXBvcnQgYW5kIHJldmlldyBvZiB0aGUgbGl0ZXJhdHVyZSoqCgpodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2FydGljbGUvMTAuMTAwNy9zMTIzMjgtMDE4LTAwOTI4LXcKCi0tLQoKCgotICoqUHJvZ25vc3RpYyBTaWduaWZpY2FuY2Ugb2YgdGhlIEx5bXBoIE5vZGUgUmF0aW8gaW4gU3VyZ2ljYWwgUGF0aWVudHMgV2l0aCBEaXN0YWwgQ2hvbGFuZ2lvY2FyY2lub21hKioKCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMDIyNDgwNDE4MzA3NzUzCgoKLS0tCgotICoqQ2xpbmljYWwgcHJhY3RpY2UgZ3VpZGVsaW5lcyBmb3IgSWdHNC1yZWxhdGVkIHNjbGVyb3NpbmcgY2hvbGFuZ2l0aXMqKgoKW2xpbmtdKGh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHVibGljYXRpb24vMzI5ODU4NDI0X0NsaW5pY2FsX3ByYWN0aWNlX2d1aWRlbGluZXNfZm9yX0lnRzQtcmVsYXRlZF9zY2xlcm9zaW5nX2Nob2xhbmdpdGlzKQoKCi0tLQoKLSAqKkZyZXF1ZW5jeSBhbmQgZmVhc2liaWxpdHkgb2YgZGV0ZWN0aW5nIEZHRlIgbVJOQSBleHByZXNzaW9uIGluIGFyY2hpdmFsIHNhbXBsZXMgb2YgcGF0aWVudHMgd2l0aCBjaG9sYW5naW9jYXJjaW5vbWEgKENDQSkuKioKCmh0dHA6Ly9hc2NvcHVicy5vcmcvZG9pL2Ficy8xMC4xMjAwL0pDTy4yMDE5LjM3LjRfc3VwcGwuMjgxCgoKCi0tLQoKLSAqKkRpZmZlcmVuY2VzIGluIG92ZXJhbGwgc3Vydml2YWwgZm9yIHBhdGllbnRzIHdpdGggY2hvbGFuZ2lvY2FyY2lub21hOiBSYWNpYWwvZXRobmljIGRpc3Bhcml0eSBvciBzb2Npb2Vjb25vbWljIGZhY3RvcnM/KioKCmh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHVibGljYXRpb24vMzMwODA0OTY4X0RpZmZlcmVuY2VzX2luX292ZXJhbGxfc3Vydml2YWxfZm9yX3BhdGllbnRzX3dpdGhfY2hvbGFuZ2lvY2FyY2lub21hX1JhY2lhbGV0aG5pY19kaXNwYXJpdHlfb3Jfc29jaW9lY29ub21pY19mYWN0b3JzCgotLS0KCmBgYHtyIHp6eiAzMDE4MDc1MSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzAxODA3NTEgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzAxODA3NTEnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzAxODA3NTEgPC0gcGFzdGUwKFBNSURfMzAxODA3NTEkam91cm5hbCwnICcsIFBNSURfMzAxODA3NTEkeWVhciwgJyAnLCBQTUlEXzMwMTgwNzUxJG1vbnRoLCc7JywgUE1JRF8zMDE4MDc1MSR2b2x1bWUsJygnLCBQTUlEXzMwMTgwNzUxJG51bWJlciwnKTonLCBQTUlEXzMwMTgwNzUxJHBhZ2VzKQoKUHViTWVkXzMwMTgwNzUxIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzAxODA3NTEkZXByaW50KQoKZG9pXzMwMTgwNzUxIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzAxODA3NTEkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzAxODA3NTEgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzAxODA3NTEkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDE4MDc1MSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDE4MDc1MSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzAxODA3NTEgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDE4MDc1MSR0aXRsZSAsICIgUE1JRDogMzAxODA3NTEgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwMTgwNzUxJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzAxODA3NTFgKgoKYHIgUHViTWVkXzMwMTgwNzUxYAoKYHIgYWRkdGhpc19pbmxpbmVfMzAxODA3NTFgCgpgciBQTUlEXzMwMTgwNzUxJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzAxODA3NTFgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzAxODA3NTFgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDE4MDc1MWAKCjwvZGV0YWlscz4KCi0tLQoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgoKCi0tLQoKLSAqKkFyZXRyb3NwZWN0aXZlYW5hbHlzaXNvZnBhdGllbnRzd2l0aGdhbGxibGFkZGVyY2FuY2VyOnN1cmdpY2FsdHJlYXRtZW50YW5kc3Vydml2YWxhY2NvcmRpbmd0b3R1bW9yc3RhZ2UqKgoKaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wcm9maWxlL0FsdmFyb19HYXJjaWEtU2VzbWEvcHVibGljYXRpb24vMzI0MzY5MTgxX0FfcmV0cm9zcGVjdGl2ZV9hbmFseXNpc19vZl9wYXRpZW50c193aXRoX2dhbGxibGFkZGVyX2NhbmNlcl9zdXJnaWNhbF90cmVhdG1lbnRfYW5kX3N1cnZpdmFsX2FjY29yZGluZ190b190dW1vcl9zdGFnZS9saW5rcy81Yjg0MWI2MDI5OWJmMWQ1YTcyYjZhNWQvQS1yZXRyb3NwZWN0aXZlLWFuYWx5c2lzLW9mLXBhdGllbnRzLXdpdGgtZ2FsbGJsYWRkZXItY2FuY2VyLXN1cmdpY2FsLXRyZWF0bWVudC1hbmQtc3Vydml2YWwtYWNjb3JkaW5nLXRvLXR1bW9yLXN0YWdlLnBkZgoKCi0tLQoKLSAqKk5hdHVyYWwgSGlzdG9yeSBhbmQgVHJlYXRtZW50IFRyZW5kcyBpbiBQYW5jcmVhdGljIENhbmNlciBTdWJ0eXBlcyoqCgpodHRwczovL3d3dy5zZW1hbnRpY3NjaG9sYXIub3JnL3BhcGVyL05hdHVyYWwtSGlzdG9yeS1hbmQtVHJlYXRtZW50LVRyZW5kcy1pbi1QYW5jcmVhdGljLVBva3J6eXdhLUFiYm90dC82ZTE1MWM5YmYyMTVhNWZkYjMxMGZlN2MwNTY3NjlmN2JmMDk2MmFiCgotLS0KCgoKCjxhIGhyZWY9IiN0b3AiIHRhcmdldD0iX3NlbGYiPkJhY2sgdG8gdG9wPC9hPgoKLS0tCgpccGFnZWJyZWFrCgoKCgojIyMjIEdhbGxibGFkZGVyCgoKLS0tCgpgYGB7ciB6enogMzA0ODg4NTEsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNDg4ODUxIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNDg4ODUxJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNDg4ODUxIDwtIHBhc3RlMChQTUlEXzMwNDg4ODUxJGpvdXJuYWwsJyAnLCBQTUlEXzMwNDg4ODUxJHllYXIsICcgJywgUE1JRF8zMDQ4ODg1MSRtb250aCwnOycsIFBNSURfMzA0ODg4NTEkdm9sdW1lLCcoJywgUE1JRF8zMDQ4ODg1MSRudW1iZXIsJyk6JywgUE1JRF8zMDQ4ODg1MSRwYWdlcykKClB1Yk1lZF8zMDQ4ODg1MSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNDg4ODUxJGVwcmludCkKCmRvaV8zMDQ4ODg1MSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNDg4ODUxJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNDg4ODUxIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNDg4ODUxJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA0ODg4NTEgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA0ODg4NTEkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNDg4ODUxIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA0ODg4NTEkdGl0bGUgLCAiIFBNSUQ6IDMwNDg4ODUxICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDQ4ODg1MSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNDg4ODUxYCoKCmByIFB1Yk1lZF8zMDQ4ODg1MWAKCmByIGFkZHRoaXNfaW5saW5lXzMwNDg4ODUxYAoKYHIgUE1JRF8zMDQ4ODg1MSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNDg4ODUxYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNDg4ODUxYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA0ODg4NTFgCgo8L2RldGFpbHM+CgotLS0KCi0gKipNaXhlZCBuZXVyb2VuZG9jcmluZS1ub24tbmV1cm9lbmRvY3JpbmUgY2FyY2lub21hIG9mIGdhbGxibGFkZGVyOiBjYXNlIHJlcG9ydCoqCgpodHRwczovL3dqc28uYmlvbWVkY2VudHJhbC5jb20vYXJ0aWNsZXMvMTAuMTE4Ni9zMTI5NTctMDE5LTE1OTgtNAoKCi0tLQoKCgoKSUwtMzMgb3ZlcmV4cHJlc3Npb24gaW4gZ2FsbGJsYWRkZXIgY2FuY2VycyBhc3NvY2lhdGVkIHdpdGggcGFuY3JlYXRvYmlsaWFyeSBtYWxqdW5jdGlvbi4KCmh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLzMwODgyOTE3CgotIFByb2dub3N0aWMgSW1wYWN0IG9mIEx5bXBoIE5vZGUgRXhjaXNpb24gaW4gVDEgYW5kIFQyIEdhbGxibGFkZGVyIENhbmNlcjogYSBQb3B1bGF0aW9uLUJhc2VkIGFuZCBQcm9wZW5zaXR5IFNjb3JlLU1hdGNoZWQgU0VFUiBBbmFseXNpcy4KCmh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLzMwODg3Mjk3CgoKLSBNb2xlY3VsYXIgRGlhZ25vc2lzIG9mIEdhbGwgQmxhZGRlciBDYW5jZXIKCmh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vY2hhcHRlci8xMC4xMDA3Lzk3OC05ODEtMTMtNTg3Ny03XzIKCi0gVGhlIG9wdGltYWwgbnVtYmVyIG9mIGx5bXBoIG5vZGVzIHRvIGV2YWx1YXRlIGFtb25nIHBhdGllbnRzIHVuZGVyZ29pbmcgc3VyZ2VyeSBmb3IgZ2FsbGJsYWRkZXIgY2FuY2VyOiBDb3JyZWxhdGluZyB0aGUgbnVtYmVyIG9mIG5vZGVzIHJlbW92ZWQgd2l0aCBzdXJ2aXZhbCBpbiA2NTMxIHBhdGllbnRzCgpodHRwczovL29ubGluZWxpYnJhcnkud2lsZXkuY29tL2RvaS9hYnMvMTAuMTAwMi9qc28uMjU0NTAKCgotLS0KCi0gKipBbiB1bnVzdWFsIHByZXNlbnRhdGlvbiBvZiBjYXJjaW5vbWEgaW4gZ2FsbGJsYWRkZXIuKioKCmh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcHVibWVkLzMwODIwMjMzCgotLS0KCi0gKipHYWxsYmxhZGRlciBDYW5jZXIgRGlhZ25vc2lzLCBTdXJnaWNhbCBNYW5hZ2VtZW50LCBhbmQgQWRqdXZhbnQgVGhlcmFwaWVzKioKCmh0dHBzOi8vd3d3LnN1cmdpY2FsLnRoZWNsaW5pY3MuY29tL2FydGljbGUvUzAwMzktNjEwOSgxOCkzMDE3OC02L2Z1bGx0ZXh0CgotLS0KCi0gKipNdWNpbiA1QiwgY2FyYm9uaWMgYW5oeWRyYXNlIDkgYW5kIGNsYXVkaW4gMTggYXJlcG90ZW50aWFsIHRoZXJhbm9zdGljIG1hcmtlcnMgb2YgZ2FsbGJsYWRkZXIgY2FyY2lub21hKioKCmh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHJvZmlsZS9KYWltZV9Fc3Bpbm96YTcvcHVibGljYXRpb24vMzI5Mzc1MjgwX01VQzVCX0NBOV9hbmRfQ0xETjE4X2FyZV9wb3RlbnRpYWxfdGhlcmFub3N0aWNfbWFya2Vyc19vZl9nYWxsYmxhZGRlcl9jYXJjaW5vbWEvbGlua3MvNWM1MDVlMjk0NTg1MTVhNGM3NDgxNWVmL01VQzVCLUNBOS1hbmQtQ0xETjE4LWFyZS1wb3RlbnRpYWwtdGhlcmFub3N0aWMtbWFya2Vycy1vZi1nYWxsYmxhZGRlci1jYXJjaW5vbWEucGRmCgotLS0KCi0gKipVbmNvbW1vbiBJbnRyYWx1bWluYWwgVHVtb3JzIG9mIHRoZSBHYWxsYmxhZGRlciBhbmQgQmlsaWFyeSBUcmFjdDogU3BlY3RydW0gb2YgSW1hZ2luZyBBcHBlYXJhbmNlcyoqCgpodHRwczovL3B1YnMucnNuYS5vcmcvZG9pL2Ficy8xMC4xMTQ4L3JnLjIwMTkxODAxNjQKCgotLS0KCi0gKipOZXVyb2VuZG9jcmluZSBDYXJjaW5vbWEgYW5kIEludHJhY3lzdGljIFBhcGlsbGFyeSBOZW9wbGFzbTogQSBSYXJlIEFzc29jaWF0aW9uIGluIHRoZSBHYWxsYmxhZGRlcioqCgoKaHR0cHM6Ly93d3cua2FyZ2VyLmNvbS9BcnRpY2xlL0Z1bGxUZXh0LzQ5NTUyMwoKCi0tLQoKLSAqKlBvc2l0aXZlIGN5c3RpYyBkdWN0IG1hcmdpbiBhdCBpbmRleCBjaG9sZWN5c3RlY3RvbXkgaW4gaW5jaWRlbnRhbCBnYWxsYmxhZGRlciBjYW5jZXIgaXMgYW4gaW1wb3J0YW50IG5lZ2F0aXZlIHByb2dub3N0aWNhdG9yKioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzA3NDg3OTgzMTkzMDAzNjgKCgotLS0KCgoKCi0gKipGaW5lLW5lZWRsZSBhc3BpcmF0aW9uIGN5dG9sb2d5IG9mIGdhbGxibGFkZGVyIHdpdGggYW4gYXR0ZW1wdCBvZiBjeXRvbW9ycGhvbG9naWNhbCBjbGFzc2lmaWNhdGlvbioqCgpodHRwOi8vd3d3LmN5dG9qb3VybmFsLmNvbS9hcnRpY2xlLmFzcD9pc3NuPTE3NDItNjQxMzt5ZWFyPTIwMTk7dm9sdW1lPTE2O2lzc3VlPTE7c3BhZ2U9MTtlcGFnZT0xO2F1bGFzdD1DaGFuZHJhCgotLS0KCi0gKipQSU0xIGtpbmFzZSBwcm9tb3RlcyBnYWxsYmxhZGRlciBjYW5jZXIgY2VsbCBwcm9saWZlcmF0aW9uIHZpYSBpbmhpYml0aW9uIG9mIHByb2xpbmUtcmljaCBBa3Qgc3Vic3RyYXRlIG9mIDQwIGtEYSAoUFJBUzQwKSoqCgpodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2FydGljbGUvMTAuMTAwNy9zMTIwNzktMDE4LTAwNTAzLTUKCgoKCi0tLQoKCi0gKipNVUM1QiwgQ0E5IGFuZCBDTEROMTggYXJlIHBvdGVudGlhbCB0aGVyYW5vc3RpYyBtYXJrZXJzIG9mIGdhbGxibGFkZGVyIGNhcmNpbm9tYSoqCgoKaHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvMTAuMTExMS9oaXMuMTM3OTcKCi0tLQoKCi0gKipPcHRpbWFsIFN1cmdpY2FsIFRyZWF0bWVudCBpbiBQYXRpZW50cyB3aXRoIFQxYiBHYWxsYmxhZGRlciBDYW5jZXI6IEFuIEludGVybmF0aW9uYWwgTXVsdGljZW50ZXIgU3R1ZHkqKgoKaHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvYWJzLzEwLjEwMDIvamhicC41OTMKCgoKCgotLS0KCi0gKipHYWxsYmxhZGRlciBQYXBpbGxvbWEgaW4gYSBDaGlsZCBVbm1hc2tpbmcgTWV0YWNocm9tYXRpYyBMZXVrb2R5c3Ryb3BoeTogQSBDYXNlIFJlcG9ydCBXaXRoIFJldmlldyBvZiBMaXRlcmF0dXJlKioKCmh0dHBzOi8vd3d3LnRhbmRmb25saW5lLmNvbS9kb2kvYWJzLzEwLjEwODAvMTU1MTM4MTUuMjAxOS4xNTg4NDQyP2pvdXJuYWxDb2RlPWlwZHAyMAoKLS0tCgo8YSBocmVmPSIjdG9wIiB0YXJnZXQ9Il9zZWxmIj5CYWNrIHRvIHRvcDwvYT4KCi0tLQoKXHBhZ2VicmVhawoKCiMjIyBBbXB1bGxhIG9mIFZhdGVyCgotLS0KCi0gKipNdXRhdGlvbmFsIExhbmRzY2FwZSBpbiBSZXNlY3RlZCBQZXJpYW1wdWxsYXJ5QWRlbm9jYXJjaW5vbWE6IFJlbGF0aW9uc2hpcCBXaXRoIE1vcnBob2xvZ3lhbmQgQ2xpbmljYWwgT3V0Y29tZSoqCgpodHRwczovL2FzY29wdWJzLm9yZy9kb2kvcGRmZGlyZWN0LzEwLjEyMDAvUE8uMTguMDAzMjMKCi0tLQoKYGBge3Igenp6IDMwNjk1ODU4LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDY5NTg1OCA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDY5NTg1OCcsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDY5NTg1OCA8LSBwYXN0ZTAoUE1JRF8zMDY5NTg1OCRqb3VybmFsLCcgJywgUE1JRF8zMDY5NTg1OCR5ZWFyLCAnICcsIFBNSURfMzA2OTU4NTgkbW9udGgsJzsnLCBQTUlEXzMwNjk1ODU4JHZvbHVtZSwnKCcsIFBNSURfMzA2OTU4NTgkbnVtYmVyLCcpOicsIFBNSURfMzA2OTU4NTgkcGFnZXMpCgpQdWJNZWRfMzA2OTU4NTggPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDY5NTg1OCRlcHJpbnQpCgpkb2lfMzA2OTU4NTggPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDY5NTg1OCRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDY5NTg1OCA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDY5NTg1OCRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNjk1ODU4IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNjk1ODU4JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDY5NTg1OCA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNjk1ODU4JHRpdGxlICwgIiBQTUlEOiAzMDY5NTg1OCAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA2OTU4NTgkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDY5NTg1OGAqCgpgciBQdWJNZWRfMzA2OTU4NThgCgpgciBhZGR0aGlzX2lubGluZV8zMDY5NTg1OGAKCmByIFBNSURfMzA2OTU4NTgkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDY5NTg1OGAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDY5NTg1OGAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNjk1ODU4YAoKPC9kZXRhaWxzPgoKLS0tCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgotLS0KCkFkZW5vc3F1YW1vdXMgY2FyY2lub21hIG9mIHRoZSBwYXBpbGxhIG9mIFZhdGVyOiBBIHBoZW5vdHlwaWMgaGV0ZXJvZ2VuZWl0eSBjaGFyYWN0ZXJpemVkIGJ5IGEgY29tbW9uIG1vbGVjdWxhciBsYW5kc2NhcGUuCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8zMDQxNzk1NgoKLS0tCgoKCgotLS0KCi0gKipDYW4gd2UgY2xhc3NpZnkgYW1wdWxsYXJ5IHR1bW91cnMgYmV0dGVyPyBDbGluaWNhbCwgcGF0aG9sb2dpY2FsIGFuZCBtb2xlY3VsYXIgZmVhdHVyZXMuIFJlc3VsdHMgb2YgYW4gQUdFTyBzdHVkeSoqCgpodHRwczovL3d3dy5uYXR1cmUuY29tL2FydGljbGVzL3M0MTQxNi0wMTktMDQxNS04CgotLS0KCi0gKipQZXJpLUFtcHVsbGFyeSBNZXRhc3Rhc2lzIEZyb20gRW5kb21ldHJpYWwgQWRlbm9jYXJjaW5vbWE6IEEgUmFyZSBFdGlvbG9neSBvZiBPYnN0cnVjdGl2ZSBKYXVuZGljZSoqCgpodHRwczovL3d3dy5nYXN0cm9yZXMub3JnL2luZGV4LnBocC9HYXN0cm9yZXMvYXJ0aWNsZS92aWV3LzExMjkvMTE1OQoKCi0tLQoKLSAqKlRoZSBQcm9nbm9zdGljIFJlbGV2YW5jZSBvZiB0aGUgTmV3IDh0aCBFZGl0aW9uIG9mIHRoZSBVbmlvbiBmb3IgSW50ZXJuYXRpb25hbCBDYW5jZXIgQ29udHJvbCBDbGFzc2lmaWNhdGlvbiBvZiBUTk0gU3RhZ2luZyBmb3IgQW1wdWxsYSBvZiBWYXRlciBDYXJjaW5vbWEqKgoKCmh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vYXJ0aWNsZS8xMC4xMjQ1L3MxMDQzNC0wMTktMDcyMzgtNgoKCi0tLQoKLSAqKlN0YWdpbmcgZm9yIEFtcHVsbGFyeSBDYXJjaW5vbWE6IElzIExlc3MgQWN0dWFsbHkgTW9yZT8qKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEyNDUvczEwNDM0LTAxOS0wNzI0MS14CgoKCi0tLQoKYGBge3Igenp6IDMwNjk0NTg2LCBpbmNsdWRlPUZBTFNFfQoKUE1JRF8zMDY5NDU4NiA8LSBSZWZNYW5hZ2VSOjpSZWFkUHViTWVkKCczMDY5NDU4NicsIGRhdGFiYXNlID0gJ1B1Yk1lZCcpCgpjaXRhdGlvbl8zMDY5NDU4NiA8LSBwYXN0ZTAoUE1JRF8zMDY5NDU4NiRqb3VybmFsLCcgJywgUE1JRF8zMDY5NDU4NiR5ZWFyLCAnICcsIFBNSURfMzA2OTQ1ODYkbW9udGgsJzsnLCBQTUlEXzMwNjk0NTg2JHZvbHVtZSwnKCcsIFBNSURfMzA2OTQ1ODYkbnVtYmVyLCcpOicsIFBNSURfMzA2OTQ1ODYkcGFnZXMpCgpQdWJNZWRfMzA2OTQ1ODYgPC0gcGFzdGUwKFB1Yk1lZFN0cmluZywgUE1JRF8zMDY5NDU4NiRlcHJpbnQpCgpkb2lfMzA2OTQ1ODYgPC0gcGFzdGUwKGRvaVN0cmluZywgUE1JRF8zMDY5NDU4NiRkb2kpCgpkaW1lbnNpb25CYWRnZV8zMDY5NDU4NiA8LSBwYXN0ZTAoZGltZW5zaW9uU3RyaW5nMSwgUE1JRF8zMDY5NDU4NiRkb2ksZGltZW5zaW9uU3RyaW5nMikKCmFsdG1ldHJpY0JhZGdlXzMwNjk0NTg2IDwtIHBhc3RlMChhbHRtZXRyaWNTdHJpbmcxLCBQTUlEXzMwNjk0NTg2JGRvaSwgYWx0bWV0cmljU3RyaW5nMiApCgphZGR0aGlzX2lubGluZV8zMDY5NDU4NiA8LSBwYXN0ZTAoYWRkdGhpc19TdHJpbmcxLCBQTUlEXzMwNjk0NTg2JHRpdGxlICwgIiBQTUlEOiAzMDY5NDU4NiAiICwgYWRkdGhpc19TdHJpbmcyKQoKU3lzLnNsZWVwKDEpCgoKYGBgCgo8ZGV0YWlscyBvcGVuPiA8c3VtbWFyeT4KLSAqKmByIFBNSURfMzA2OTQ1ODYkdGl0bGVgKioKPC9zdW1tYXJ5PiAKCipgciBjaXRhdGlvbl8zMDY5NDU4NmAqCgpgciBQdWJNZWRfMzA2OTQ1ODZgCgpgciBhZGR0aGlzX2lubGluZV8zMDY5NDU4NmAKCmByIFBNSURfMzA2OTQ1ODYkYWJzdHJhY3RgCgo8IS0tIGByIGRvaV8zMDY5NDU4NmAgLS0+CgpgciBkaW1lbnNpb25CYWRnZV8zMDY5NDU4NmAKCmByIGFsdG1ldHJpY0JhZGdlXzMwNjk0NTg2YAoKPC9kZXRhaWxzPgoKLS0tCgpgYGB7ciB6enogMzA2OTM0MjAsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwNjkzNDIwIDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwNjkzNDIwJywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwNjkzNDIwIDwtIHBhc3RlMChQTUlEXzMwNjkzNDIwJGpvdXJuYWwsJyAnLCBQTUlEXzMwNjkzNDIwJHllYXIsICcgJywgUE1JRF8zMDY5MzQyMCRtb250aCwnOycsIFBNSURfMzA2OTM0MjAkdm9sdW1lLCcoJywgUE1JRF8zMDY5MzQyMCRudW1iZXIsJyk6JywgUE1JRF8zMDY5MzQyMCRwYWdlcykKClB1Yk1lZF8zMDY5MzQyMCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwNjkzNDIwJGVwcmludCkKCmRvaV8zMDY5MzQyMCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwNjkzNDIwJGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwNjkzNDIwIDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwNjkzNDIwJGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA2OTM0MjAgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA2OTM0MjAkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwNjkzNDIwIDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA2OTM0MjAkdGl0bGUgLCAiIFBNSUQ6IDMwNjkzNDIwICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDY5MzQyMCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwNjkzNDIwYCoKCmByIFB1Yk1lZF8zMDY5MzQyMGAKCmByIGFkZHRoaXNfaW5saW5lXzMwNjkzNDIwYAoKYHIgUE1JRF8zMDY5MzQyMCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwNjkzNDIwYCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwNjkzNDIwYAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA2OTM0MjBgCgo8L2RldGFpbHM+CgoKLS0tCgoKLSAqKkNsaW5pY2FsIHJlbGV2YW5jZSBvZiBwYW5jcmVhdG9iaWxpYXJ5IGFuZCBpbnRlc3RpbmFsIHN1YnR5cGVzIG9mIGFtcHVsbGFyeSBhbmQgZHVvZGVuYWwgYWRlbm9jYXJjaW5vbWE6IFBhdHRlcm4gb2YgcmVjdXJyZW5jZSwgY2hlbW90aGVyYXB5LCBhbmQgc3Vydml2YWwgYWZ0ZXIgcGFuY3JlYXRvZHVvZGVuZWN0b215KioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzE0MjQzOTAzMTkzMDAyMDEKCgoKLS0tCgotICoqVGhlIFJvbGUgb2YgTG9nIE9kZHMgb2YgUG9zaXRpdmUgTHltcGggTm9kZXMgaW4gUHJlZGljdGluZyB0aGUgU3Vydml2YWwgYWZ0ZXIgUmVzZWN0aW9uIGZvciBBbXB1bGxhcnkgQWRlbm9jYXJjaW5vbWEqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEwMDcvczEyMjUzLTAxOS0wMDU4NC02CgotLS0KCi0gKipBbXB1bGxhcnkgY2FuY2VyOiBFdmFsdWF0aW9uIG9mIHNvbWF0aWMgYW5kIGdlcm1saW5lIGdlbmV0aWMgYWx0ZXJhdGlvbnMgYW5kIGFzc29jaWF0aW9uIHdpdGggY2xpbmljYWwgb3V0Y29tZXMqKgoKaHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvYWJzLzEwLjEwMDIvY25jci4zMTk1MQoKCi0tLQoKLSAqKkFkZW5vc3F1YW1vdXMgY2FyY2lub21hIG9mIHRoZSBwYXBpbGxhIG9mIFZhdGVyOiBBIHBoZW5vdHlwaWMgaGV0ZXJvZ2VuZWl0eSBjaGFyYWN0ZXJpemVkIGJ5IGEgY29tbW9uIG1vbGVjdWxhciBsYW5kc2NhcGUqKgoKaHR0cHM6Ly9vbmxpbmVsaWJyYXJ5LndpbGV5LmNvbS9kb2kvMTAuMTExMS9waW4uMTI3MzEKCgoKCi0tLQoKLSAqKklkZW50aWZpY2F0aW9uIG9mIGFtcHVsbGFyeSBjYXJjaW5vbWEgbWl4ZWQgc3VidHlwZSB1c2luZyBhIHBhbmVsIG9mIHNpeCBhbnRpYm9kaWVzIGFuZCBpdHMgY2xpbmljYWwgc2lnbmlmaWNhbmNlKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMDAyL2pzby4yNTMxMQoKLS0tCgotICoqSW5jaWRlbmNlIGFuZCBjb21wYXJhdGl2ZSBvdXRjb21lcyBvZiBwZXJpYW1wdWxsYXJ5IGNhbmNlcjogQSBwb3B1bGF0aW9u4oCQYmFzZWQgYW5hbHlzaXMgZGVtb25zdHJhdGluZyBpbXByb3ZlZCBvdXRjb21lcyBhbmQgaW5jcmVhc2VkIHVzZSBvZiBhZGp1dmFudCB0aGVyYXB5IGZyb20gMjAwNCB0byAyMDEyKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMDAyL2pzby4yNTMzNgoKCi0tLQoKLSAqKkRpc3RpbmN0IGltbXVub2xvZ2ljYWwgcHJvcGVydGllcyBvZiB0aGUgdHdvIGhpc3RvbG9naWNhbCBzdWJ0eXBlcyBvZiBhZGVub2NhcmNpbm9tYSBvZiB0aGUgYW1wdWxsYSBvZiBWYXRlcioqCgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEwMDcvczAwMjYyLTAxOC0wMjI5My02CgoKLS0tCgpgYGB7ciB6enogMzAxMjY4MjgsIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwMTI2ODI4IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwMTI2ODI4JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwMTI2ODI4IDwtIHBhc3RlMChQTUlEXzMwMTI2ODI4JGpvdXJuYWwsJyAnLCBQTUlEXzMwMTI2ODI4JHllYXIsICcgJywgUE1JRF8zMDEyNjgyOCRtb250aCwnOycsIFBNSURfMzAxMjY4Mjgkdm9sdW1lLCcoJywgUE1JRF8zMDEyNjgyOCRudW1iZXIsJyk6JywgUE1JRF8zMDEyNjgyOCRwYWdlcykKClB1Yk1lZF8zMDEyNjgyOCA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwMTI2ODI4JGVwcmludCkKCmRvaV8zMDEyNjgyOCA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwMTI2ODI4JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwMTI2ODI4IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwMTI2ODI4JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzAxMjY4MjggPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzAxMjY4MjgkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwMTI2ODI4IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzAxMjY4MjgkdGl0bGUgLCAiIFBNSUQ6IDMwMTI2ODI4ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDEyNjgyOCR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwMTI2ODI4YCoKCmByIFB1Yk1lZF8zMDEyNjgyOGAKCmByIGFkZHRoaXNfaW5saW5lXzMwMTI2ODI4YAoKYHIgUE1JRF8zMDEyNjgyOCRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwMTI2ODI4YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwMTI2ODI4YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzAxMjY4MjhgCgo8L2RldGFpbHM+CgotLS0KCmBgYHtyIHp6eiAzMDgxMzIwMywgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA4MTMyMDMgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA4MTMyMDMnLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA4MTMyMDMgPC0gcGFzdGUwKFBNSURfMzA4MTMyMDMkam91cm5hbCwnICcsIFBNSURfMzA4MTMyMDMkeWVhciwgJyAnLCBQTUlEXzMwODEzMjAzJG1vbnRoLCc7JywgUE1JRF8zMDgxMzIwMyR2b2x1bWUsJygnLCBQTUlEXzMwODEzMjAzJG51bWJlciwnKTonLCBQTUlEXzMwODEzMjAzJHBhZ2VzKQoKUHViTWVkXzMwODEzMjAzIDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA4MTMyMDMkZXByaW50KQoKZG9pXzMwODEzMjAzIDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA4MTMyMDMkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA4MTMyMDMgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA4MTMyMDMkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDgxMzIwMyA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDgxMzIwMyRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA4MTMyMDMgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDgxMzIwMyR0aXRsZSAsICIgUE1JRDogMzA4MTMyMDMgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwODEzMjAzJHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA4MTMyMDNgKgoKYHIgUHViTWVkXzMwODEzMjAzYAoKYHIgYWRkdGhpc19pbmxpbmVfMzA4MTMyMDNgCgpgciBQTUlEXzMwODEzMjAzJGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA4MTMyMDNgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA4MTMyMDNgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDgxMzIwM2AKCjwvZGV0YWlscz4KCgoKLS0tCgpgYGB7ciB6enogMzA4NDYwMzksIGluY2x1ZGU9RkFMU0V9CgpQTUlEXzMwODQ2MDM5IDwtIFJlZk1hbmFnZVI6OlJlYWRQdWJNZWQoJzMwODQ2MDM5JywgZGF0YWJhc2UgPSAnUHViTWVkJykKCmNpdGF0aW9uXzMwODQ2MDM5IDwtIHBhc3RlMChQTUlEXzMwODQ2MDM5JGpvdXJuYWwsJyAnLCBQTUlEXzMwODQ2MDM5JHllYXIsICcgJywgUE1JRF8zMDg0NjAzOSRtb250aCwnOycsIFBNSURfMzA4NDYwMzkkdm9sdW1lLCcoJywgUE1JRF8zMDg0NjAzOSRudW1iZXIsJyk6JywgUE1JRF8zMDg0NjAzOSRwYWdlcykKClB1Yk1lZF8zMDg0NjAzOSA8LSBwYXN0ZTAoUHViTWVkU3RyaW5nLCBQTUlEXzMwODQ2MDM5JGVwcmludCkKCmRvaV8zMDg0NjAzOSA8LSBwYXN0ZTAoZG9pU3RyaW5nLCBQTUlEXzMwODQ2MDM5JGRvaSkKCmRpbWVuc2lvbkJhZGdlXzMwODQ2MDM5IDwtIHBhc3RlMChkaW1lbnNpb25TdHJpbmcxLCBQTUlEXzMwODQ2MDM5JGRvaSxkaW1lbnNpb25TdHJpbmcyKQoKYWx0bWV0cmljQmFkZ2VfMzA4NDYwMzkgPC0gcGFzdGUwKGFsdG1ldHJpY1N0cmluZzEsIFBNSURfMzA4NDYwMzkkZG9pLCBhbHRtZXRyaWNTdHJpbmcyICkKCmFkZHRoaXNfaW5saW5lXzMwODQ2MDM5IDwtIHBhc3RlMChhZGR0aGlzX1N0cmluZzEsIFBNSURfMzA4NDYwMzkkdGl0bGUgLCAiIFBNSUQ6IDMwODQ2MDM5ICIgLCBhZGR0aGlzX1N0cmluZzIpCgpTeXMuc2xlZXAoMSkKCgpgYGAKCjxkZXRhaWxzIG9wZW4+IDxzdW1tYXJ5PgotICoqYHIgUE1JRF8zMDg0NjAzOSR0aXRsZWAqKgo8L3N1bW1hcnk+IAoKKmByIGNpdGF0aW9uXzMwODQ2MDM5YCoKCmByIFB1Yk1lZF8zMDg0NjAzOWAKCmByIGFkZHRoaXNfaW5saW5lXzMwODQ2MDM5YAoKYHIgUE1JRF8zMDg0NjAzOSRhYnN0cmFjdGAKCjwhLS0gYHIgZG9pXzMwODQ2MDM5YCAtLT4KCmByIGRpbWVuc2lvbkJhZGdlXzMwODQ2MDM5YAoKYHIgYWx0bWV0cmljQmFkZ2VfMzA4NDYwMzlgCgo8L2RldGFpbHM+CgoKCgotLS0KCmBgYHtyIHp6eiAzMDg0OTIwOSwgaW5jbHVkZT1GQUxTRX0KClBNSURfMzA4NDkyMDkgPC0gUmVmTWFuYWdlUjo6UmVhZFB1Yk1lZCgnMzA4NDkyMDknLCBkYXRhYmFzZSA9ICdQdWJNZWQnKQoKY2l0YXRpb25fMzA4NDkyMDkgPC0gcGFzdGUwKFBNSURfMzA4NDkyMDkkam91cm5hbCwnICcsIFBNSURfMzA4NDkyMDkkeWVhciwgJyAnLCBQTUlEXzMwODQ5MjA5JG1vbnRoLCc7JywgUE1JRF8zMDg0OTIwOSR2b2x1bWUsJygnLCBQTUlEXzMwODQ5MjA5JG51bWJlciwnKTonLCBQTUlEXzMwODQ5MjA5JHBhZ2VzKQoKUHViTWVkXzMwODQ5MjA5IDwtIHBhc3RlMChQdWJNZWRTdHJpbmcsIFBNSURfMzA4NDkyMDkkZXByaW50KQoKZG9pXzMwODQ5MjA5IDwtIHBhc3RlMChkb2lTdHJpbmcsIFBNSURfMzA4NDkyMDkkZG9pKQoKZGltZW5zaW9uQmFkZ2VfMzA4NDkyMDkgPC0gcGFzdGUwKGRpbWVuc2lvblN0cmluZzEsIFBNSURfMzA4NDkyMDkkZG9pLGRpbWVuc2lvblN0cmluZzIpCgphbHRtZXRyaWNCYWRnZV8zMDg0OTIwOSA8LSBwYXN0ZTAoYWx0bWV0cmljU3RyaW5nMSwgUE1JRF8zMDg0OTIwOSRkb2ksIGFsdG1ldHJpY1N0cmluZzIgKQoKYWRkdGhpc19pbmxpbmVfMzA4NDkyMDkgPC0gcGFzdGUwKGFkZHRoaXNfU3RyaW5nMSwgUE1JRF8zMDg0OTIwOSR0aXRsZSAsICIgUE1JRDogMzA4NDkyMDkgIiAsIGFkZHRoaXNfU3RyaW5nMikKClN5cy5zbGVlcCgxKQoKCmBgYAoKPGRldGFpbHMgb3Blbj4gPHN1bW1hcnk+Ci0gKipgciBQTUlEXzMwODQ5MjA5JHRpdGxlYCoqCjwvc3VtbWFyeT4gCgoqYHIgY2l0YXRpb25fMzA4NDkyMDlgKgoKYHIgUHViTWVkXzMwODQ5MjA5YAoKYHIgYWRkdGhpc19pbmxpbmVfMzA4NDkyMDlgCgpgciBQTUlEXzMwODQ5MjA5JGFic3RyYWN0YAoKPCEtLSBgciBkb2lfMzA4NDkyMDlgIC0tPgoKYHIgZGltZW5zaW9uQmFkZ2VfMzA4NDkyMDlgCgpgciBhbHRtZXRyaWNCYWRnZV8zMDg0OTIwOWAKCjwvZGV0YWlscz4KCi0tLQoKCi0gKipbSGlzdG9nZW5lc2lzIG9mIGR1b2RlbmFsIG5vbi1hbXB1bGxhcnkgdHVtb3ItbGlrZSBsZXNpb25zIGFuZCB0dW1vcnNdLioqCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8yOTQ1OTU1OQoKLS0tCgoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgoKCiMjIyMgTmV1cm9lbmRvY3JpbmUKCgotLS0KCi0gKipLaTY3IHF1YW50aXRhdGl2ZSBpbnRlcnByZXRhdGlvbjogSW5zaWdodHMgdXNpbmcgaW1hZ2UgYW5hbHlzaXMqKgoKaHR0cDovL3d3dy5qcGF0aGluZm9ybWF0aWNzLm9yZy9hcnRpY2xlLmFzcD9pc3NuPTIxNTMtMzUzOTt5ZWFyPTIwMTk7dm9sdW1lPTEwO2lzc3VlPTE7c3BhZ2U9ODtlcGFnZT04O2F1bGFzdD1Wb2x5bnNrYXlhCgoKCi0tLQoKPGEgaHJlZj0iI3RvcCIgdGFyZ2V0PSJfc2VsZiI+QmFjayB0byB0b3A8L2E+CgotLS0KClxwYWdlYnJlYWsKCgoKCgotLS0KCi0gKipUaGUgbGFuZHNjYXBlIG9mIG1vbGVjdWxhciBhbHRlcmF0aW9ucyBpbiBwYW5jcmVhdGljIGFuZCBzbWFsbCBpbnRlc3RpbmFsIG5ldXJvZW5kb2NyaW5lIHR1bW91cnMgTGUgcGF5c2FnZSBkZXMgYWx0w6lyYXRpb25zIG1vbMOpY3VsYWlyZXMgZGFucyBsZXMgdHVtZXVycyBuZXVyb2VuZG9jcmluZXMgZ2FzdHJvLWVudMOpcm8tcGFuY3LDqWF0aXF1ZXMqKgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDAwMzQyNjYxOTMwMDYyOQoKCi0tLQoKCi0tLQoKLSBQYXRpZW50IGNoYXJhY3RlcmlzdGljcyBhbmQgY2xpbmljYWwgb3V0Y29tZXMgZm9sbG93aW5nIGluaXRpYWwgc3VyZ2ljYWwgaW50ZXJ2ZW50aW9uIGZvciBNRU4xIGFzc29jaWF0ZWQgcGFuY3JlYXRpYyBuZXVyb2VuZG9jcmluZSB0dW1vdXJzOiBBIHN5c3RlbWF0aWMgcmV2aWV3IGFuZCBleHBsb3JhdG9yeSBtZXRhLWFuYWx5c2lzIG9mIHRoZSBsaXRlcmF0dXJlLgoKaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMzA4OTQzMDMKCgotLS0KCi0gKipTeXN0ZW1hdGljIHJldmlldyBvZiBjdXJyZW50IHByb2dub3N0aWNhdGlvbiBzeXN0ZW1zIGZvciBwYW5jcmVhdGljIG5ldXJvZW5kb2NyaW5lIG5lb3BsYXNtcyoqCgpodHRwczovL3d3dy5zdXJnam91cm5hbC5jb20vYXJ0aWNsZS9TMDAzOS02MDYwKDE4KTMwNzQ3LTUvZnVsbHRleHQKCi0tLQoKLSAqKlN1cmdlcnkgZm9yIFBhbmNyZWF0aWMgTmV1cm9lbmRvY3JpbmUgVHVtb3IgRzMgYW5kIENhcmNpbm9tYSBHMyBTaG91bGQgYmUgQ29uc2lkZXJlZCBTZXBhcmF0ZWx5LioqCgpodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8zMDg2MzkzOQoKCi0tLQoKLSAqKlJlcGx5IHRvIOKAmFRpbWUgZm9yIGEgY2hhbmdlIGFuZCB0byBhZG9wdCBhIG5vdmVsIG1vbGVjdWxhciBnZW5vbWljIGFwcHJvYWNoIGluIE5FVHPigJkqKgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDE1NzEtMDE5LTAxODYtNAoKLS0tCgotICoqSW50ZXJ0dW1vciBoZXRlcm9nZW5laXR5IGluIDYwIHBhbmNyZWF0aWMgbmV1cm9lbmRvY3JpbmUgdHVtb3JzIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBlbmRvY3JpbmUgbmVvcGxhc2lhIHR5cGUgMSoqCgpodHRwczovL29qcmQuYmlvbWVkY2VudHJhbC5jb20vYXJ0aWNsZXMvMTAuMTE4Ni9zMTMwMjMtMDE5LTEwMzQtNAoKLS0tCgotICoqUkFCTDZBaW5oaWJpdHMgdHVtb3Itc3VwcHJlc3NpdmUgUFAyQS9BS1RzaWduYWxpbmcgdG8gZHJpdmVwYW5jcmVhdGljIG5ldXJvZW5kb2NyaW5lIHR1bW9yIGdyb3d0aCoqCgoKaHR0cHM6Ly9kbTVtaWd1NHpqM3BiLmNsb3VkZnJvbnQubmV0L21hbnVzY3JpcHRzLzEyMzAwMC8xMjMwNDkvSkNJMTIzMDQ5LnYxLnBkZgoKCi0tLQoKLSAqKlR1bW9yLUluZmlsdHJhdGluZyBORVRzIFByZWRpY3QgUG9zdHN1cmdpY2FsIFN1cnZpdmFsIGluIFBhdGllbnRzIHdpdGggUGFuY3JlYXRpYyBEdWN0YWwgQWRlbm9jYXJjaW5vbWEqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEyNDUlMkZzMTA0MzQtMDE4LTY5NDEtNAoKCgotLS0KCi0gKipJbnRlcmFjdGlvbiBvZiByYWNlIGFuZCBwYXRob2xvZ3kgZm9yIG5ldXJvZW5kb2NyaW5lIHR1bW9yczogRXBpZGVtaW9sb2d5LCBuYXR1cmFsIGhpc3RvcnksIG9yIHJhY2lhbCBkaXNwYXJpdHk/KioKCmh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHVibGljYXRpb24vMzMwODA0MzEwX0ludGVyYWN0aW9uX29mX3JhY2VfYW5kX3BhdGhvbG9neV9mb3JfbmV1cm9lbmRvY3JpbmVfdHVtb3JzX0VwaWRlbWlvbG9neV9uYXR1cmFsX2hpc3Rvcnlfb3JfcmFjaWFsX2Rpc3Bhcml0eQoKCgotLS0KCi0gKipEdW9kZW5hbCBuZXVyb2VuZG9jcmluZSB0dW1vcnM6IFNvbWV3aGVyZSBiZXR3ZWVuIHRoZSBwYW5jcmVhcyBhbmQgc21hbGwgYm93ZWw/KioKCmh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHVibGljYXRpb24vMzMwODA1MDE4X0R1b2RlbmFsX25ldXJvZW5kb2NyaW5lX3R1bW9yc19Tb21ld2hlcmVfYmV0d2Vlbl90aGVfcGFuY3JlYXNfYW5kX3NtYWxsX2Jvd2VsCgoKCi0tLQoKLSAqKlRoZSBTaXplIG9mIFdlbGwgRGlmZmVyZW50aWF0ZWQgUGFuY3JlYXRpYyBOZXVyb2VuZG9jcmluZSBUdW1vcnMgQ29ycmVsYXRlcyB3aXRoIEtpNjcgUHJvbGlmZXJhdGl2ZSBJbmRleCBhbmQgaXMgbm90IEFzc29jaWF0ZWQgd2l0aCBBZ2UqKgoKaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMzA1OTUyMTVfVGhlX1NpemVfb2ZfV2VsbF9EaWZmZXJlbnRpYXRlZF9QYW5jcmVhdGljX05ldXJvZW5kb2NyaW5lX1R1bW9yc19Db3JyZWxhdGVzX3dpdGhfS2k2N19Qcm9saWZlcmF0aXZlX0luZGV4X2FuZF9pc19ub3RfQXNzb2NpYXRlZF93aXRoX0FnZQoKCi0tLQoKLSAqKlJvbGUgb2YgVHVtb3IgQXNzb2NpYXRlZCBNYWNyb3BoYWdlcyBpbiB0aGUgQ2xpbmljYWwgQ291cnNlIG9mIFBhbmNyZWF0aWMgTmV1cm9lbmRvY3JpbmUgVHVtb3JzIChQYW5ORVRzKSoqCgpodHRwOi8vY2xpbmNhbmNlcnJlcy5hYWNyam91cm5hbHMub3JnL2NvbnRlbnQvZWFybHkvMjAxOS8wMS8xOS8xMDc4LTA0MzIuQ0NSLTE4LTE0MDEKCgotLS0KCi0gKipHZW5ldGljcyBhbmQgRXBpZ2VuZXRpY3Mgb2YgR2FzdHJvZW50ZXJvcGFuY3JlYXRpYyBOZXVyb2VuZG9jcmluZSBOZW9wbGFzbXMqKgoKaHR0cHM6Ly9hY2FkZW1pYy5vdXAuY29tL2VkcnYvYWR2YW5jZS1hcnRpY2xlLWFic3RyYWN0L2RvaS8xMC4xMjEwL2VyLjIwMTgtMDAxNjAvNTI4OTcyMAoKCi0tLQoKLSAqKlR1bW9yIGdyb3d0aCByYXRlIGFzIGEgbWV0cmljIG9mIHByb2dyZXNzaW9uLCByZXNwb25zZSwgYW5kIHByb2dub3NpcyBpbiBwYW5jcmVhdGljIGFuZCBpbnRlc3RpbmFsIG5ldXJvZW5kb2NyaW5lIHR1bW9ycyoqCgpodHRwczovL2JtY2NhbmNlci5iaW9tZWRjZW50cmFsLmNvbS9hcnRpY2xlcy8xMC4xMTg2L3MxMjg4NS0wMTgtNTI1Ny14CgoKLS0tCgotICoqV2hhdCBJcyBOZXcgaW4gdGhlIDIwMTcgV29ybGQgSGVhbHRoIE9yZ2FuaXphdGlvbiBDbGFzc2lmaWNhdGlvbiBhbmQgOHRoIEFtZXJpY2FuIEpvaW50IENvbW1pdHRlZSBvbiBDYW5jZXIgU3RhZ2luZyBTeXN0ZW0gZm9yIFBhbmNyZWF0aWMgTmV1cm9lbmRvY3JpbmUgTmVvcGxhc21zPyoqCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMzMDA3MDA0M19XaGF0X0lzX05ld19pbl90aGVfMjAxN19Xb3JsZF9IZWFsdGhfT3JnYW5pemF0aW9uX0NsYXNzaWZpY2F0aW9uX2FuZF84dGhfQW1lcmljYW5fSm9pbnRfQ29tbWl0dGVlX29uX0NhbmNlcl9TdGFnaW5nX1N5c3RlbV9mb3JfUGFuY3JlYXRpY19OZXVyb2VuZG9jcmluZV9OZW9wbGFzbXMKCgpodHRwczovL3d3dy5ranJvbmxpbmUub3JnL0RPSXgucGhwP2lkPTEwLjMzNDgva2pyLjIwMTguMDA0MAoKCi0tLQoKLSAqKlN5c3RlbWF0aWMgcmV2aWV3IG9mIGN1cnJlbnQgcHJvZ25vc3RpY2F0aW9uIHN5c3RlbXMgZm9yIHBhbmNyZWF0aWMgbmV1cm9lbmRvY3JpbmUgbmVvcGxhc21zKioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzAwMzk2MDYwMTgzMDc0NzUKCi0tLQoKLSAqKlNlcnVtIGNocm9tb2dyYW5pbiBBIGZvciB0aGUgZGlhZ25vc2lzIG9mIGdhc3Ryb2VudGVyb3BhbmNyZWF0aWMgbmV1cm9lbmRvY3JpbmUgbmVvcGxhc21zIGFuZCBpdHMgYXNzb2NpYXRpb24gd2l0aCB0dW1vdXIgZXhwcmVzc2lvbioqCgpodHRwczovL3d3dy5zcGFuZGlkb3MtcHVibGljYXRpb25zLmNvbS8xMC4zODkyL29sLjIwMTguOTc5NQoKCi0tLQoKLSAqKkVuZG9zY29waWMgVWx0cmFzb3VuZCBBc3Nlc3NtZW50IG9mIFBhbmNyZWF0aWMgRHVjdCBEaWFtZXRlciBQcmVkaWN0cyBOZXVyb2VuZG9jcmluZSBUdW1vcnMgYW5kIE90aGVyIFBhbmNyZWFzIE1hc3NlcyoqCgpodHRwczovL2pvdXJuYWxzLmx3dy5jb20vcGFuY3JlYXNqb3VybmFsL0Fic3RyYWN0LzIwMTkvMDEwMDAvRW5kb3Njb3BpY19VbHRyYXNvdW5kX0Fzc2Vzc21lbnRfb2ZfUGFuY3JlYXRpYy45LmFzcHgKCi0tLQoKLSAqKlRoZSBNb2xlY3VsYXIgYW5kIENsaW5pY2FsIExhbmRzY2FwZSBvZiBQYW5jcmVhdGljIE5ldXJvZW5kb2NyaW5lIFR1bW9ycyoqCgpodHRwczovL2pvdXJuYWxzLmx3dy5jb20vcGFuY3JlYXNqb3VybmFsL0Fic3RyYWN0LzIwMTkvMDEwMDAvVGhlX01vbGVjdWxhcl9hbmRfQ2xpbmljYWxfTGFuZHNjYXBlX29mX1BhbmNyZWF0aWMuMi5hc3B4CgotLS0KCi0gKipTeXN0ZW1hdGljIHJldmlldyBvZiBjdXJyZW50IHByb2dub3N0aWNhdGlvbiBzeXN0ZW1zIGZvciBwYW5jcmVhdGljIG5ldXJvZW5kb2NyaW5lIG5lb3BsYXNtcyoqCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMDM5NjA2MDE4MzA3NDc1CgoKLS0tCgotICoqUmVnaW9uYWwgZGlmZmVyZW5jZXMgaW4gZ2FsbGJsYWRkZXIgY2FuY2VyIHBhdGhvZ2VuZXNpczogSW5zaWdodHMgZnJvbSBhIG11bHRpLWluc3RpdHV0aW9uYWwgY29tcGFyaXNvbiBvZiB0dW1vciBtdXRhdGlvbnM6IExvY2FsaXR5IG9mIEdhbGxibGFkZGVyIFR1bW9yIE11dGF0aW9ucyoqCgoKaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMjg5NDcwNTNfUmVnaW9uYWxfZGlmZmVyZW5jZXNfaW5fZ2FsbGJsYWRkZXJfY2FuY2VyX3BhdGhvZ2VuZXNpc19JbnNpZ2h0c19mcm9tX2FfbXVsdGktaW5zdGl0dXRpb25hbF9jb21wYXJpc29uX29mX3R1bW9yX211dGF0aW9uc19Mb2NhbGl0eV9vZl9HYWxsYmxhZGRlcl9UdW1vcl9NdXRhdGlvbnMKCgotLS0KCi0gKipJbnRyYWNob2xlY3lzdGljIHBhcGlsbGFyeS10dWJ1bGFyIG5lb3BsYXNtIG9mIHRoZSBnYWxsYmxhZGRlciBvcmlnaW5hdGluZyBpbiB0aGUgY3lzdGljIGR1Y3Qgd2l0aCBleHRlbnNpdmUgaW50cmFlcGl0aGVsaWFsIHByb2dyZXNzIGluIHRoZSBjb21tb24gYmlsZSBkdWN0KioKCmh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vYXJ0aWNsZS8xMC4xMDA3L3MxMjMyOC0wMTgtMDkyNy00CgoKLS0tCgotICoqRGlzdHJpYnV0aW9uIG9mIGR5c3BsYXNpYSBhbmQgY2FuY2VyIGluIHRoZSBnYWxsYmxhZGRlcjogYW4gYW5hbHlzaXMgZnJvbSBhIGhpZ2ggY2FuY2VyLXJpc2sgcG9wdWxhdGlvbioqCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMDQ2ODE3NzE4MzAyODJYP2RnY2lkPXJhdmVuX3NkX3ZpYV9lbWFpbAoKCgotLS0KCgotICoqTmF0aW9uYWwgRmFpbHVyZSBvZiBTdXJnaWNhbCBTdGFnaW5nIGZvciBUMWIgR2FsbGJsYWRkZXIgQ2FuY2VyKioKCmh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vYXJ0aWNsZS8xMC4xMjQ1L3MxMDQzNC0wMTgtNzA2NC03CgoKCi0tLQoKCgoKCgoKCgoKCgoKCi0gKipBIGNvbW1vbiBjbGFzc2lmaWNhdGlvbiBmcmFtZXdvcmsgZm9yIG5ldXJvZW5kb2NyaW5lIG5lb3BsYXNtczogYW4gSW50ZXJuYXRpb25hbCBBZ2VuY3kgZm9yIFJlc2VhcmNoIG9uIENhbmNlciAoSUFSQykgYW5kIFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb24gKFdITykgZXhwZXJ0IGNvbnNlbnN1cyBwcm9wb3NhbCoqCgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDEzNzktMDE4LTAxMTAteQoKCgotLS0KCi0gKipJbnN1bGlub21hLWFzc29jaWF0ZWQgcHJvdGVpbiAxIGltbXVub3N0YWluaW5nIG9uIGN5dG9sb2d5IHNwZWNpbWVuczogYW4gaW5zdGl0dXRpb25hbCBleHBlcmllbmNlKioKCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMDQ2ODE3NzE4MzA0MzUwCgotLS0KCgotICoqQVRSWCBsb3NzIGlzIGFuIGluZGVwZW5kZW50IHByZWRpY3RvciBvZiBwb29yIHN1cnZpdmFsIGluIHBhbmNyZWF0aWMgbmV1cm9lbmRvY3JpbmUgdHVtb3JzKioKCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMDQ2ODE3NzE4MzAzMDA5CgoKLS0tCgotICoqTmVvcGxhc21zIG9mIHRoZSBOZXVyb2VuZG9jcmluZSBQYW5jcmVhcyBBbiBVcGRhdGUgaW4gdGhlIENsYXNzaWZpY2F0aW9uLCBEZWZpbml0aW9uLCBhbmQgTW9sZWN1bGFyIEdlbmV0aWMgQWR2YW5jZXMqKgoKaHR0cHM6Ly9qb3VybmFscy5sd3cuY29tL2FuYXRvbWljcGF0aG9sb2d5L0Fic3RyYWN0LzIwMTkvMDEwMDAvTmVvcGxhc21zX29mX3RoZV9OZXVyb2VuZG9jcmluZV9QYW5jcmVhc19fX0FuLjIuYXNweAoKLS0tCgoKCi0gKipQYXR0ZXJucyBvZiByZWN1cnJlbmNlIGFmdGVyIHJlc2VjdGlvbiBmb3IgcGFuY3JlYXRpYyBuZXVyb2VuZG9jcmluZSB0dW1vcnM6IHdobywgd2hlbiwgYW5kIHdoZXJlPyoqCgpbbGlua10oaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMjkyNDc2ODNfUGF0dGVybnNfb2ZfcmVjdXJyZW5jZV9hZnRlcl9yZXNlY3Rpb25fZm9yX3BhbmNyZWF0aWNfbmV1cm9lbmRvY3JpbmVfdHVtb3JzX3dob193aGVuX2FuZF93aGVyZSkKCgoKCi0tLQoKCgoKCgoKCi0gKipUb3VjaCBpbXByaW50IGN5dG9sb2d5IG9uIGVuZG9zY29waWMgdWx0cmFzb3VuZCBmaW5l4oCQbmVlZGxlIGJpb3BzeSBwcm92aWRlcyBjb21wYXJhYmxlIHNhbXBsZSBxdWFsaXR5IGFuZCBkaWFnbm9zdGljIHlpZWxkIHRvIHN0YW5kYXJkIGV1c+KAkGZuYSBzcGVjaW1lbnMgaW4gdGhlIGV2YWx1YXRpb24gb2Ygc29saWQgcGFuY3JlYXRpYyBsZXNpb25zKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMTExL2N5dC4xMjY2MgoKCi0tLQoKCi0gKipSYXRpb25hbGUgYW5kIGZlYXNpYmlsaXR5IG9mIG11Y2luIGV4cHJlc3Npb24gcHJvZmlsaW5nIGJ5IHFSVC1QQ1IgYXMgZGlhZ25vc3RpYyBiaW9tYXJrZXJzIGluIGN5dG9sb2d5IHNwZWNpbWVucyBvZiBwYW5jcmVhdGljIGNhbmNlcioqCgpbbGlua10oaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMjc4Nzc2NDVfUmF0aW9uYWxlX2FuZF9mZWFzaWJpbGl0eV9vZl9tdWNpbl9leHByZXNzaW9uX3Byb2ZpbGluZ19ieV9xUlQtUENSX2FzX2RpYWdub3N0aWNfYmlvbWFya2Vyc19pbl9jeXRvbG9neV9zcGVjaW1lbnNfb2ZfcGFuY3JlYXRpY19jYW5jZXIpCgoKCgoKLS0tCgoKCgoKLSAqKkFkdmFuY2VzIGluIHRoZSBjeXRvbG9naWMgZGlhZ25vc2lzIG9mIGdhc3Ryb2VudGVyb3BhbmNyZWF0aWMgbmV1cm9lbmRvY3JpbmUgbmVvcGxhc21zKioKCmh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vZG9pL2Ficy8xMC4xMDAyL2NuY3kuMjIwNzMKCgoKCgoKCi0tLQoKCgoKCgoKCgoKCgoKCgoKLSAqKkdlbmV0aWMgYXNzZXNzbWVudCBvZiByZWN1cnJlbnQgcGFuY3JlYXRpYyBoaWdoLXJpc2sgbGVzaW9ucyBpbiB0aGUgcmVtbmFudCBwYW5jcmVhczogTWV0YWNocm9ub3VzIG11bHRpZm9jYWwgbGVzaW9uIG9yIGxvY2FsIHJlY3VycmVuY2U/KioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzAwMzk2MDYwMTgzMDc0MDIKCgotLS0KCi0gKipST0JPMiBpcyBhIHN0cm9tYSBzdXBwcmVzc29yIGdlbmUgaW4gdGhlIHBhbmNyZWFzIGFuZCBhY3RzIHZpYSBUR0YtzrIgc2lnbmFsbGluZyoqCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMyOTMyNDg3N19ST0JPMl9pc19hX3N0cm9tYV9zdXBwcmVzc29yX2dlbmVfaW5fdGhlX3BhbmNyZWFzX2FuZF9hY3RzX3ZpYV9UR0YtYl9zaWduYWxsaW5nCgoKLS0tCgotICoqTXV0YXRpb25zIGluIEJSQ0ExLCBCUkNBMiwgYW5kIFBBTEIyLCBhbmQgYSBwYW5lbCBvZiA1MCBjYW5jZXItYXNzb2NpYXRlZCBnZW5lcyBpbiBwYW5jcmVhdGljIGR1Y3RhbCBhZGVub2NhcmNpbm9tYSoqCgpEZWNlbWJlciAyMDE4U2NpZW50aWZpYyBSZXBvcnRzIDgoMSkKCkRPSTogMTAuMTAzOC9zNDE1OTgtMDE4LTI2NTI2LXgKCgpodHRwczovL3d3dy5yZXNlYXJjaGdhdGUubmV0L3B1YmxpY2F0aW9uLzMyNTM2ODI0NF9NdXRhdGlvbnNfaW5fQlJDQTFfQlJDQTJfYW5kX1BBTEIyX2FuZF9hX3BhbmVsX29mXzUwX2NhbmNlci1hc3NvY2lhdGVkX2dlbmVzX2luX3BhbmNyZWF0aWNfZHVjdGFsX2FkZW5vY2FyY2lub21hCgoKCgoKCi0tLQoKCgoKCgoKCgoKCgoKCgotICoqQ29vcmRpbmF0ZWx5IHRhcmdldGluZyBjZWxsIGN5Y2xlIGNoZWNrcG9pbnQgZnVuY3Rpb25zIGluIGludGVncmF0ZWQgbW9kZWxzIG9mIHBhbmNyZWF0aWMgY2FuY2VyKioKCgpodHRwOi8vY2xpbmNhbmNlcnJlcy5hYWNyam91cm5hbHMub3JnL2NvbnRlbnQvZWFybHkvMjAxOC8xMi8xMS8xMDc4LTA0MzIuQ0NSLTE4LTE2MjAKCgotLS0KCi0gKiptaVJOQSBhbmQgR2VuZSBFeHByZXNzaW9uIGluIFBhbmNyZWF0aWMgRHVjdGFsIEFkZW5vY2FyY2lub21hKioKCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMDAyOTQ0MDE4MzA1NTcxCgoKCgotLS0KCgoKCi0gKipDaXJjdWxhdGluZyBUdW1vciBDZWxscyBhbmQgQ2VsbC1GcmVlIEROQSBpbiBQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYSoqCgoKaHR0cHM6Ly93d3cuc2NpZW5jZWRpcmVjdC5jb20vc2NpZW5jZS9hcnRpY2xlL3BpaS9TMDAwMjk0NDAxNzMxMTgxMQoKCgoKCi0tLQoKCgoKLSAqKkdQRVIgaXMgYSBtZWNoYW5vcmVndWxhdG9yIG9mIHBhbmNyZWF0aWMgc3RlbGxhdGUgY2VsbHMgYW5kIHRoZSB0dW1vciBtaWNyb2Vudmlyb25tZW50KioKCgpodHRwOi8vZW1ib3IuZW1ib3ByZXNzLm9yZy9jb250ZW50L2Vhcmx5LzIwMTgvMTIvMDYvZW1ici4yMDE4NDY1NTYKCgoKLS0tCgoKCgotICoqR2VuZXRpYyBhbHRlcmF0aW9ucyBhbmFseXNpcyBpbiBwcm9nbm9zdGljIHN0cmF0aWZpZWQgZ3JvdXBzIGlkZW50aWZpZWQgVFA1MyBhbmQgQVJJRDFBIGFzIHBvb3IgY2xpbmljYWwgcGVyZm9ybWFuY2UgbWFya2VycyBpbiBpbnRyYWhlcGF0aWMgY2hvbGFuZ2lvY2FyY2lub21hKioKCkRlY2VtYmVyIDIwMThTY2llbnRpZmljIFJlcG9ydHMgOCgxKQoKRE9JOiAxMC4xMDM4L3M0MTU5OC0wMTgtMjU2NjktMQoKaHR0cHM6Ly93d3cucmVzZWFyY2hnYXRlLm5ldC9wdWJsaWNhdGlvbi8zMjUwMjA2NTFfR2VuZXRpY19hbHRlcmF0aW9uc19hbmFseXNpc19pbl9wcm9nbm9zdGljX3N0cmF0aWZpZWRfZ3JvdXBzX2lkZW50aWZpZWRfVFA1M19hbmRfQVJJRDFBX2FzX3Bvb3JfY2xpbmljYWxfcGVyZm9ybWFuY2VfbWFya2Vyc19pbl9pbnRyYWhlcGF0aWNfY2hvbGFuZ2lvY2FyY2lub21hCgoKLS0tCgoKCi0gKipLUkFTLCBOUkFTIGFuZCBCUkFGIGFuYWx5c2lzIG9mIGFtcHVsbGFyeSBhZGVub2NhcmNpbm9tYSBjbGFzc2lmaWVkIHVzaW5nIENLNywgQ0syMCwgTVVDMSBhbmQgTVVDMioqCgoKaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wbWMvYXJ0aWNsZXMvUE1DNjIxOTk2NC8KCgoKCgoKCi0gKipNYXNzIFNwZWN0cm9tZXRyeS1CYXNlZCBDb21wcmVoZW5zaXZlIEFuYWx5c2lzIG9mIFBhbmNyZWF0aWMgQ3lzdCBGbHVpZHMqKgoKaHR0cHM6Ly93d3cuaGluZGF3aS5jb20vam91cm5hbHMvYm1yaS8yMDE4LzcxNjk1OTUvCgotLS0KCi0gKipBIOKAnENsZWFyZXLigJ0gVmlldyBvZiBQYW5jcmVhdGljIFBhdGhvbG9neSBBIFJldmlldyBvZiBUaXNzdWUgQ2xlYXJpbmcgYW5kIEFkdmFuY2VkIE1pY3Jvc2NvcHkgVGVjaG5pcXVlcyoqCgpodHRwczovL2pvdXJuYWxzLmx3dy5jb20vYW5hdG9taWNwYXRob2xvZ3kvQWJzdHJhY3QvMjAxOS8wMTAwMC9BX19DbGVhcmVyX19WaWV3X29mX1BhbmNyZWF0aWNfUGF0aG9sb2d5X19fQS4zLmFzcHgKCgotLS0KCi0gKipQYW5jcmVhdGljIER1Y3RhbCBBZGVub2NhcmNpbm9tYTogUmVjZW50IFVwZGF0ZXMqKgoKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzAwMDI5NDQwMTgzMDg1NTEKCgotLS0KCgotICoqR2VybWFuIE5hdGlvbmFsIENhc2UgQ29sbGVjdGlvbiBmb3IgZmFtaWxpYWwgcGFuY3JlYXRpYyBDYW5jZXIgKEZhUGFDYSkgLSBhY2NlcHRhbmNlIGFuZCBwc3ljaG9sb2dpY2FsIGFzcGVjdHMgb2YgYSBwYW5jcmVhdGljIGNhbmNlciBzY3JlZW5pbmcgcHJvZ3JhbSoqCgpodHRwczovL2hjY3Bqb3VybmFsLmJpb21lZGNlbnRyYWwuY29tL2FydGljbGVzLzEwLjExODYvczEzMDUzLTAxOC0wMTAwLTYKCgotLS0KCgotICoqUmVjZW50IHRyZWF0bWVudCBwYXR0ZXJucyBhbmQgc3Vydml2YWwgb3V0Y29tZXMgaW4gcGFuY3JlYXRpYyBjYW5jZXIgYWNjb3JkaW5nIHRvIGNsaW5pY2FsIHN0YWdlIGJhc2VkIG9uIHNpbmdsZS1jZW50ZXIgbGFyZ2UtY29ob3J0IGRhdGEqKgoKaHR0cHM6Ly9zeW5hcHNlLmtvcmVhbWVkLm9yZy9zZWFyY2gucGhwP3doZXJlPWF2aWV3JmlkPTEwLjE0NzAxL2FoYnBzLjIwMTguMjIuNC4zODYmY29kZT0yMTEwQUhCUFMmdm1vZGU9RlVMTAoKCgotLS0KCi0gKipBIHN5c3RlbWF0aWMgYXNzZXNzbWVudCBvZiBzdGF0aXN0aWNzLCByaXNrIGZhY3RvcnMsIGFuZCB1bmRlcmx5aW5nIGZlYXR1cmVzIGludm9sdmVkIGluIHBhbmNyZWF0aWMgY2FuY2VyKioKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzE4Nzc3ODIxMTgzMDUxMDEKCgoKLS0tCgoKLSAqKlBBTkNSRUFUSUMgQ0FOQ0VSIElOIEJSQVpJTDogTU9SVEFMSVRZIFRSRU5EUyBBTkQgUFJPSkVDVElPTlMgVU5USUwgMjAyOSoqCgoKaHR0cDovL3d3dy5zY2llbG8uYnIvc2NpZWxvLnBocD9waWQ9UzAwMDQtMjgwMzIwMTgwMDIzMDAyMzAmc2NyaXB0PXNjaV9hcnR0ZXh0CgoKLS0tCgoKLSAqKlJlc3VsdHMgb2YgRmlyc3Qtcm91bmQgb2YgU3VydmVpbGxhbmNlIGluIEluZGl2aWR1YWxzIGF0IEhpZ2gtcmlzayBvZiBQYW5jcmVhdGljIENhbmNlciBmcm9tIHRoZSBBSVNQIChJdGFsaWFuIEFzc29jaWF0aW9uIGZvciB0aGUgU3R1ZHkgb2YgdGhlIFBhbmNyZWFzKSBSZWdpc3RyeSoqCgoKaHR0cHM6Ly93d3cubmF0dXJlLmNvbS9hcnRpY2xlcy9zNDEzOTUtMDE4LTA0MTQtegoKCi0tLQoKLSAqKkZhbWlsaWFsIFBhbmNyZWF0aWMgRHVjdGFsIEFkZW5vY2FyY2lub21hKioKCgpodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMDAyOTQ0MDE4MzAyMDYyCgoKLS0tCgoKLSAqKkN1cnJlbnQgQXBwcm9hY2hlcyB0byBQYW5jcmVhdGljIENhbmNlciBTY3JlZW5pbmcqKgoKCmh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzAwMDI5NDQwMTgzMDI1MjkKCi0tLQoKLSAqKlRoZSBpbXBhY3Qgb2YgdGhlIGltbXVuZSBtaWNyb2Vudmlyb25tZW50IGluIHBhdGllbnRzIHdpdGggR0VQLU5FVHMuKioKCmh0dHA6Ly9hc2NvcHVicy5vcmcvZG9pL2Ficy8xMC4xMjAwL0pDTy4yMDE5LjM3LjRfc3VwcGwuMjY3CgoKLS0tCgotICoqU3VyZ2VyeSBmb3IgUGFuY3JlYXRpYyBOZXVyb2VuZG9jcmluZSBUdW1vciBHMyBhbmQgQ2FyY2lub21hIEczIFNob3VsZCBiZSBDb25zaWRlcmVkIFNlcGFyYXRlbHkqKgoKaHR0cHM6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjEyNDUvczEwNDM0LTAxOS0wNzI1Mi04CgotLS0KCi0gKipBIHNpbXBsZSBhbmQgcHJhY3RpY2FsIGluZGV4IHByZWRpY3RpbmcgdGhlIHByb2dub3NlcyBvZiB0aGUgcGF0aWVudHMgd2l0aCB3ZWxsLWRpZmZlcmVudGlhdGVkIHBhbmNyZWF0aWMgbmV1cm9lbmRvY3JpbmUgbmVvcGxhc21zKioKCmh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vYXJ0aWNsZS8xMC4xMDA3L3MwMDUzNS0wMTktMDE1NzAtMAoKCi0tLQoKCgoKCgo=